linux 系统生成测试 SSL证书 nginx|https|http2|quic
无论用 https,还是用http2,或者是quic,亦或是基于tls的任何应用层协议。你都需要使用SSL证书。而本文档恰好 提供一种 linux系统生成SSL测试证书的方法。
正式操作前,你需要安装openssl,如果是ubuntu系统可以执行命令: sudo apt-get install openssl libssl-dev
其余系统可以按照对应系统进行安装,或者下载源代码编译安装,这里不多讲。
1,首先生成密钥文件 server.key,会有两次要求输入密码,输入同一个即可
openssl genrsa -des3 -out server.key 2048
2,上述命令已经生成了 server.key,以后使用此文件可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令
openssl rsa -in server.key -out server.key
3,创建服务器证书的申请文件 server.csr,其中Country Name填CN,Common Name填主机名也可以不填。如果不填浏览器会认为不安全。(例如你以后的url为https://abcd/xxxx….这里就可以填abcd),其他的都可以不填
openssl req -new -key server.key -out server.csr
4,创建CA证书 ca.crt
openssl req -new -x509 -key server.key -out ca.crt -days 3650
5,此时,你已经得到一个CA证书 ca.crt。这个证书用来给自己的证书签名。
创建自当前日期起有效期为期十年的服务器证书 server.crt
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
以上步骤都正常完成后,一共生成如下5个文件
ca.crt ca.srl server.crt server.csr server.key
据我的经验,生成的证书在用于不同的协议或不同协议对应的项目时,证书名称是有区别的。包括在apache 和 nginx配置http1.1 的https时,证书的后缀方式也不同。所以大家在使用证书的时候,一定要先理解证书文件的含义,然后再将其配置到对应的项目上,有时候只需要修改一下证书的后缀,即可改成需要的证书。
下面我提供一个nginx 配置 https 的证书使用方式
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate server.crt; #配置证书文件
ssl_certificate_key server.key; #配置秘钥文件
...
}
本文暂时没有评论,来添加一个吧(●'◡'●)