| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网络服务与安全之openSSL制作CA证书 -> 正文阅读 |
|
[网络协议]网络服务与安全之openSSL制作CA证书 |
在网络中,数据在服务器端与客户端之间传递,为了保证数据安全,需要将数据进行加密后再传输,这样即使数据被窃取,窃听者也无法知道数据的真实内容。 当前的网络服务中,使用TLS来加密。应用层在TLS之上,使得在数据传到应用层之前就已经完成了加密和解密的过程。
SSL(secure?sockets layer):安全套接字 TLS(transport layer security):安全传输层协议 CA(certificate authority):认证中心: CSR(certificate signing request):签名证书请求文件-用于向CA申请数字签名 2、Openssl,一个开源项目,作为一个多用途的命令行工具,包括如下命令: enc:对称加密 dgst:单向加密 passwd:生成密码 rand:生成随机数 genrsa:生成私钥 rsa:提取公钥(从生成的私钥中提取) x509:自签证书 req:CSR证书请求文件生成(通过私钥文件生成) 3、证书生成过程(以自签名证书为例) (1)生成流程: CA机构:(1)生成私钥(2)用私钥生成csr文件(3)生成自签名证书 服务器:(2)生成私钥(2)生成csr文件(3)用CA的相关信息生成签名证书 (2)req命令参数说明: -new 生成一个新的证书请求文件 -key:指定已有的秘钥文件生成秘钥请求,与-new配合 -out:指定输出文件,为证书请求文件 -newkkey:与-key互斥,生成证书请求文件时自动生成秘钥,其名称由-keyout指定 -nodes :如果指定-newkey自动生成秘钥,那么-nodes选项说明生成的秘钥不需要加密 -x509:创建一个证书文件 (3)x509命令参数 -signkey:指定签名秘钥(须为私钥),并使得由-in 提供的输入文件转成自签名的证书 -req :输入是一个证书请求,签名并输出 4、具体命令 生成?CA 私钥:openssl genrsa -out ca.key 1024,其中,1024表示私钥位数 生成 CA 证书签名文件:openssl req -new -key ca.key -out ca.csr 生成 CA 根证书(公钥):openssl x509 -req -in ca.csr -signkey ca.key?-out ca.crt 【直接生成 CA 根证书(公钥),相当于上面两条命令一起执行了】: openssl req -new -x509 -key ca.key -out ca.crt 制作生成网站的证书并用CA 签名认证 生成证书私钥:openssl genrsa -out server.pem 制作解密后的证书私钥:openssl rsa -in server.pem -out server.key 生成签名请求文件:openssl req -new -key server.pem -out server.csr 用CA 进行签名,制作证书:openssl x509?-req?-ca ca.crt -CAkey ca.key -in?server.csr?-out server.crt 5、Nginx配置 监听443端口,并配置ssl_certificate_key 和?ssl_certificate? 具体配置示例: server{ listen 443; ssl on; ssl_certificate_key? ? ? server.key; ssl_session_cache ? ?shared:SSL:1m; ssl_ciphers ?HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; } 配置完成后,重新启动Nginx,就可以用https访问了。(注意location的配置,能正常访问就行) |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:58:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |