zoukankan      html  css  js  c++  java
  • Nginx ssl证书部署

    查看当前安装的OpenSSL版本所支持的密码列表,可以使用下列命令:openssl ciphers

    苹果ATS检测:https://www.qcloud.com/product/ssl 刚开始"PFS(完全正向保密)"这一项未成功通过,升级Nginx版本后才通过了

    具体配置方法:https://www.qcloud.com/document/product/400/6973

    Nginx 证书加密套件配置:

    更新Nginx根目录下 conf/nginx.conf 文件如下:

    server {
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    }

    --------------------------------------------------------------------------------------------------------

    Nginx 配置支持HTTPS

    vim nginx.conf

    复制代码
    server {
        listen 80;
        listen 443 ssl;
        server_name  *.*.com
        ...
    #ssl on; #在同一个server{}里配置同时开启http和https时,不需要开启此项! ssl_certificate /data/mysite/htdocs/server.pem; ssl_certificate_key /data/mysite/htdocs/server.key; ... }
    复制代码

    http 与https并存 

    nginx配置https的官网链接:http://nginx.org/en/docs/http/configuring_https_servers.html

    --------------------------------------------------------------------------------------------------------

    Nginx证书部署
    一、 获取pem格式的证书公私钥
    1.使用mpki方式申请证书的。
    首先登录mpki系统:https://mpki.trustasia.com。然后下载证书



    订单密码:下订单时候设置的密码
    证书密码:解压密码(下载下来的是证书的zip的压缩文件)
    证书格式:pem for nginx

    解压后会获得两个文件:cer后缀的是证书公钥(此文件可以改名为server.pem),key后缀的是私钥(可以改名为server.key)


    2.非mpki方式
    这种方式私钥key是自行生成的(可以改名为server.key)。
    证书公钥可以这样提取:

    收到证书颁发邮件,邮件里有证书 和 证书链 两部分。把代码部分(包含-----BEGIN CERITIFICATE-----到-----END CERITIFICATE-----)一起复制保存到一个新的文本文档中,顺序是证书代码在前面,证书链代码在后面,这样新的文本文档里有两段甚至多段证书代码。新的文本文档名可以叫做server.pem


    二、 在nginx里部署证书及优化配置ssl
    到nginx的conf目录,找到nginx.conf文件,修改或者配置这样一段
    server {
            listen       443;
            server_name  www.trustasia.com #你们的域名,如www.abc.com;
            ssl                on;
            ssl_certificate      /xxx/xxx/server.pem;
            ssl_certificate_key   /xxx/xxx/server.key;
            ssl_session_timeout  5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#按照这个加密套件配

            location / {
                root   html; #站点目录
                index  index.html index.htm;
            }
    }


    下面为配置文件参数说明:
    listen       443
    SSL访问端口号为443

    ssl       on
    启用SSL功能

    ssl_certificate
    证书文件server.pem

    ssl_certificate_key
    私钥文件server.pem

    ssl_protocols
    使用的协议

    ssl_ciphers
    配置加密套件,写法遵循openssl标准

    配置完成后,先用bin/nginx –t来测试下配置是否有误,正确无误的话,建议重启nginx。(不是reload


    三、 使用全站加密,http自动跳转https(可选)
    对于用户,不是不知道https,就是知道https也因为懒,不愿意输入https。这样就有一个需求,让服务器自动把http的请求重定向到https。

    在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)

    在http的server里
    增加rewrite   ^(.*) https://$host$1 permanent;

    这样就可以实现80进来的请求,重定向为https了。

  • 相关阅读:
    看了一些Tab标签的效果,正好在学习前端,自己动手也写个把~
    js时间的操作,为了让cookie在当天24点过期~
    《转载》CSS换行问题
    【PHP项目】form表单的enctype属性
    php中处理字符串的常见函数
    PHP加密函数
    PHP判断时关于null,0,true,flase的值
    获取PHP页面的当前文件名(包括后缀名)
    php中关于empty()函数是否为真的判断
    【PHP】判断变量是否为控
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/6102172.html
Copyright © 2011-2022 走看看