美文网首页全栈工程师通往架构师之路webNginx
117-为Nginx配置 SSL 证书 + 搭建 HTTPS网站

117-为Nginx配置 SSL 证书 + 搭建 HTTPS网站

作者: 霄峰 | 来源:发表于2017-02-06 13:22 被阅读1785次

    1. 背景
    谷歌从 2017 年起,Chrome 浏览器将也会把采用 HTTP 协议的网站标记为「不安全」网站;苹果从 2017 年 iOS App 将强制使用 HTTPS;在国内热火朝天的小程序也要求必须使用 HTTPS 请求。

    2. SSL证书类型
    通常来说,SSL 证书分为三大类,他们的安全性是递增的,当然价格和安全系数成正比。
    DV (Domain Validation Certificate) DV 证书适合个人网站使用,申请证书时,CA 只验证域名信息。几分钟之内就能签发。
    OV ( Organization Validation Certificate) OV 证书需要认证公司的信息。1-2天签发。
    EV ( Extended Validation Certificate) EV 证书的认证最为严格,一般会要求提供纸质材料。签发时间也较久。


    这里推荐去[七牛]申请免费SSL证书这里是申请地址

    完成后将证书和key内容复制出来!如图:


    cert.png

    然后(如果文件、目录不存在要自行创建):
    将第一部分内容复制到/var/cert/yunfeng365.crt文件中!
    将第二部分内容复制到/var/cert/yunfeng365.key文件中!

    为了确保更强的安全性,我们可以采取迪菲-赫尔曼密钥交换
    进入/var/cert/目录并生成一个yunfeng365.pem

    cd /var/cert/
    openssl dhparam -out yunfeng365.pem 2048 # 如果你的机器性能足够强大,可以用 4096 位加密
    

    生成完毕后,进行Nginx 配置
    在nginx配置文件目录中(/etc/nginx/sites-available)新增文件:

    yunfeng365.com
    https.yunfeng365.com
    

    yunfeng365.com 配置80端口301跳转

    server {
            listen 80 default_server;
    
            # Make site accessible from http://localhost/
            server_name yunfeng365.com;
            server_name www.yunfeng365.com;
            return 301 https://www.yunfeng365.com$request_uri;
    }
    

    https.yunfeng365.com配置ssl

    server {
            listen 443 ssl;
    
            root /var/www/blog/public;
            index index.php index.html index.htm;
    
            # Make site accessible from http://localhost/
            server_name yunfeng365.com;
            server_name www.yunfeng365.com;
    
            # ssh配置
            ssl on;
            ssl_certificate /var/cert/yunfeng365.crt;
            ssl_dhparam /var/cert/yunfeng365.pem;
            ssl_certificate_key /var/cert/yunfeng365.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/ /index.php?$query_string;
            }
    
            # php配置
            location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }
    
    }
    

    配置完成后,执行以下命令创建软链接使配置加载:

    cd /etc/nginx/sites-enabled
    ln -s /etc/nginx/sites-available/https.yunfeng365.com
    ln -s /etc/nginx/sites-available/yunfeng365.com
    

    如遇权限问题请使用sudo!

    重启Nginx使配置生效!

    service nginx restart
    

    相关文章

      网友评论

        本文标题:117-为Nginx配置 SSL 证书 + 搭建 HTTPS网站

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