打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Nginx 使用 openssl 的自签名证书

一、准备证书

0. 前期准备工作

cd ~/mkdir sslcd sslmkdir demoCAcd demoCAmkdir newcertsmkdir privatetouch index.txtecho '01' > serial

1. 制件 CA 证书

生成 CA 私钥: ca.key

openssl genrsa -des3 -out ca.key 2048

这样是生成 rsa 私钥,`des3` 算法,openssl 格式,2048 位强度。`ca.key` 是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。另外可以通过以下方法生成没有密码的key:

openssl rsa -in ca.key -out ca_decrypted.key

生成 CA 根证书的公钥 ca.crt:

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

2. 制作网站的 https 证书,并用 CA 签名认证

假设我们需要为 abc.com 域名制作证书

先生成 abc.com 的证书私钥 abc.com.pem

openssl genrsa -des3 -out abc.com.pem 1024

无密码的私钥

openssl rsa -in abc.com.pem -out abc.com.key

生成 csr 签名请求

openssl req -new -key abc.com.pem -out abc.com.csr

这里需要输入国家,地区,组织,email等。最重要的是 **common name**,可以写你的名字或者域名。如果为了 https 申请,这个必须和域名一样,即,这里要写 abc.com,否则会引发浏览器警报,这里可以用 *.abc.com 来做泛域名证书。

最后,需要用 CA 证书进行签名:

openssl ca -policy policy_anything -days 1460 -cert ./demoCA/ca.crt -keyfile ./demoCA/ca.key -in abc.com.csr -out abc.com.crt

这样网站的 https 证书就做完了。

还有一步就是把 ca.crt 的内容追加到 abc.com.crt 后面,因为有些浏览似乎不支持。

cat demoCA/ca.crt >> abc.com.crt

nginx 配置

加入配置内容:

server {  listen 443;  server_name abc.com www.abc.com;  root html;  index index.html index.htm;  ssl on;   ssl_certificate /PATH/TO/abc.com.crt;  ssl_certificate_key /PATH/TO/abc.com.key;  ssl_session_timeout 5m;  ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;  ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";  ssl_prefer_server_ciphers on;  location / {    try_files $uri $uri/ =404;  }       }

其它

其实很多时候,并不需要加密的 key,所以像这面这么做就好了。

cd ~/mkdir sslcd sslmkdir demoCAcd demoCAmkdir newcertsmkdir privatetouch index.txtecho '01' > serialopenssl genrsa -out ca.key 2048openssl req -new -x509 -days 3650 -key ca.key -out ca.crtcd ..openssl genrsa -out abc.com.key 2048openssl req -new -key abc.com.key -out abc.com.csropenssl ca  -policy policy_anything  -days 1460 -in abc.com.csr -out abc.com.crt -cert ./demoCA/ca.crt -keyfile ./demoCA/ca.key
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ubuntu使用OpenSSL生成数字证书详解
openssl 生成证书【整理】
Tomcat和Openssl构建HTTPS双向认证
如何用openssl命令行生成证书
Nginx?SSL?配置:证书文件制作
nginx配置SSL实现服务器/客户端双向认证
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服