这里说下Linux 系统怎么通过openssl命令生成 证书。
创建存放证书的目录,此目录可自定义
cd /etc/nginxmkdir keycd key
执行如下命令生成一个key
openssl genrsa -des3 -out ssl.key 1024
然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。
由于生成时候必须输入密码。你可以输入后 再删掉。
mv ssl.key xxx.keyopenssl rsa -in xxx.key -out ssl.keyrm xxx.key
然后根据这个key文件生成证书请求文件
openssl req -new -key ssl.key -out ssl.csr
以上命令生成时候要填很多东西 如图:
最后根据这2个文件(ssl.key ssl.csr)生成crt证书文件
sudo openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
这里365是证书有效期 推荐3650哈哈。这个大家随意。最后使用到的文件是key和crt文件。
### 如果需要用pfx 可以用以下命令生成openssl pkcs12 -export -inkey ssl.key -in ssl.crt -out ssl.pfx
在需要使用证书的nginx配置文件的server节点里加入以下配置就可以了。
upstream tomcatserver2 {server 127.0.0.1:8080;}# HTTPS serverserver {listen 443 ssl;server_name 192.168.1.128;ssl_certificate/root/key/ssl.crt;ssl_certificate_key /root/key/ssl.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_pass http://tomcatserver2;root html;index index.html index.htm;}}
注意:
nginx版本1.5以下,需要加ssl on;
nginx版本1.5以以上,不需要加ssl on;
,直接在listen 443
后面加ssl
,即:listen 443 ssl;
配置完,重新加载即可:
./nginx -s reload
如果报以下错误:
说明key太短了,则把上面的命令中1024改为2048,重复以上操作,即可
openssl genrsa -des3 -out ssl.key 2048
本文为转载,原文为:/reid_lv/article/details/80106560