nginx配置https访问, 生成自签名证书

这里说下Linux 系统怎么通过openssl命令生成 证书。

创建存放证书的目录,此目录可自定义

cd /etc/nginx

mkdir key

cd key

执行如下命令生成一个key

   openssl genrsa -des3 -out ssl.key 1024

然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。
由于生成时候必须输入密码。你可以输入后 再删掉。

mv ssl.key xxx.key
openssl rsa -in xxx.key -out ssl.key
rm xxx.key

然后根据这个key文件生成证书请求文件

openssl req -new -key ssl.key -out ssl.csr

以上命令生成时候要填很多东西 如图:

nginx配置https访问, 生成自签名证书_第1张图片
最后根据这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 server
server {
    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配置https访问, 生成自签名证书_第2张图片
配置完,重新加载即可:

./nginx -s reload

如果报以下错误:
nginx配置https访问, 生成自签名证书_第3张图片
说明key太短了,则把上面的命令中1024改为2048,重复以上操作,即可

openssl genrsa -des3 -out ssl.key 2048

本文为转载,原文为:https://blog.csdn.net/reid_lv/article/details/80106560

你可能感兴趣的:(nginx配置https访问,生成自签名证书,ssl,https,nginx)