IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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之上,使得在数据传到应用层之前就已经完成了加密和解密的过程。

  1. 相关概念:

SSL(secure?sockets layer:安全套接字

TLS(transport layer security):安全传输层协议

CAcertificate 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_certificate? ? ? ? ?server.crt;

ssl_session_cache ? ?shared:SSL:1m;
ssl_session_timeout ?5m;

ssl_ciphers ?HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
ssl_prefer_server_ciphers ?on;

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地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 17:07:55  更:2021-12-02 17:10:19 
 
开发: 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年7日历 -2024/7/6 7:28:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码