全栈工程师通往架构师之路webNginx

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

2017-02-06  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读