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;
    }
  • 相关阅读:
    数字滤波器
    PCL点云库:Kd树
    KNN算法与Kd树
    分布式锁与实现(一)——基于Redis实现
    Redis分布式锁的正确实现方式
    redis常用命令大全
    使用 Redis 实现排行榜功能
    RabbitMQ下的生产消费者模式与订阅发布模式
    java高级精讲之高并发抢红包~揭开Redis分布式集群与Lua神秘面纱
    Java进阶面试题大集合-offer不再是问题
  • 原文地址:https://www.cnblogs.com/phpfans/p/4793343.html
Copyright © 2011-2022 走看看