美文网首页
使用SSL生成https证书,并进行nginx配置

使用SSL生成https证书,并进行nginx配置

作者: 伶念 | 来源:发表于2021-07-05 16:18 被阅读0次

    一、 windows安装 OpenSSL:

    http://slproweb.com/products/Win32OpenSSL.html

    二、 生成https证书

    1、创建密钥(注意:生成私钥,需要提供一个至少4位,最多1023位的密码。)

    openssl genrsa -des3 -out server.key 2048
    

    2、生成CSR(证书签名请求)

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

    说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。
      可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书,需要花钱。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名。

    3、删除密钥中的密码

    openssl rsa -in server.key -out server.key
    

    说明:如果不删除密码,在应用加载的时候会出现输入密码进行验证的情况,不方便自动化部署。

    4、生成自签名证书

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    

    5、生成pem格式的公钥(有些服务,需要有pem格式的证书才能正常加载)

     openssl x509 -in server.crt -out server.pem -outform PEM
    

    自签名的证书,不被浏览器信任,适合内部或者测试使用

    6、crt转cer

    openssl x509 -in server.crt -out server.cer -outform DER
    

    三、进行Nginx配置

    将生成的文件全部放到conf文件夹(其他路径也可,配置nginx能找到即可)


    image.png
        map $http_upgrade $connection_upgrade { 
        default upgrade; 
        '' close; 
        } 
        upstream wsbackend{ 
            server 127.0.0.1:8082;  #websocket地址
            #keepalive 1000; 
        }
        server {
            listen       443 ssl; #默认端口为 443
            server_name  localhost;
    
            ssl_certificate      server.pem;
            ssl_certificate_key  server.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
            
           location /ajaxApi/ { 
              proxy_pass   http://127.0.0.1:8082/; #代理后台请求
            }      
    
           location /wss/ {
              proxy_pass http://wsbackend; #代理websocket
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
            }
    
        }
    

    重启nginx

    nginx  -s  reload
    

    相关文章

      网友评论

          本文标题:使用SSL生成https证书,并进行nginx配置

          本文链接:https://www.haomeiwen.com/subject/lckiultx.html