zoukankan      html  css  js  c++  java
  • nginx使用ssl模块配置HTTPS支持

      默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中。通常这个文件名类似libssl-dev。

    生成证书

    可以通过以下步骤生成一个简单的证书:
    首先,进入你想创建证书和私钥的目录,例如:

    1. $ cd /data

    创建服务器私钥,命令会让你输入一个口令:

    1. $ openssl genrsa -des3 -out server.key 1024

    创建签名请求的证书(CSR):

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

    在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:

    1. $ cp server.key server.key.org
    2. $ openssl rsa -in server.key.org -out server.key

    配置nginx

    最后标记证书使用上述私钥和CSR:

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

    修改Nginx配置文件,让其包含新标记的证书和私钥:

    server {
            listen 443;
            server_name localhost;
    
            root html;
            index index.html index.htm;
    
            ssl on;
            ssl_certificate /data/server.crt;
            ssl_certificate_key /data/server.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;
            }
    }

    重启nginx。

    这样就可以通过以下方式访问:

    https://YOUR_DOMAINNAME_HERE

    另外还可以加入如下代码实现80端口重定向到443

    server {
        listen 80;
        server_name ww.centos.bz;
        rewrite ^(.*) https://$server_name$1 permanent;
    }
  • 相关阅读:
    Grunt jshint Warning: Path must be a string . Received null Use
    bootstrap滚动监视原理实现
    Bootstrap模态框原理分析及问题解决
    LeetCode54. 螺旋矩阵
    LeetCode53. 最大子序和
    mysql servers实现层拼写SQL
    easyUI 分页 获取页面
    excel导入功能
    easyUI遮罩
    uuid生成
  • 原文地址:https://www.cnblogs.com/phpfans/p/4793343.html
Copyright © 2011-2022 走看看