nginx 服务器下网站改用 https 的方法。
1. 申请免费的 ssl 证书
更新:以下内容仅供参考,当前免费证书更好的解决方案是 `Lets Encrypt`。方法也很简单,可参考:
你可以参考如下的地址申请免费的 ssl 证书,也可以依据网站安全级别需要,购买付费的级别更高的 SSL 证书服务。
有如下几个提供免费 ssl 证书的地方,请自行选择其一,注册账号,按照提示逐步注册免费 ssl 证书。 一般十分钟左右即可搞定。志文工作室选择的是 wosign。
http://freessl.wosign.com/freessl http://www.zzidc.com/main/ssl/showmianfei.html https://www.startssl.com/
取得 ssl 证书下载下来,解压后的文件图一所示。这里解压 for nginx 的 zip 包,得到一个 key 和 crt 文件。
2. 上传 SSL 证书
上传证书文件到服务器任意目录,如上传到 /root/ssl/ 目录下。 然后解密私钥和设置权限:
openssl rsa -in /root/ssl/2_lzw.me.key -out /root/ssl/2_lzw.me.key chmod 600 /root/ssl/2_lzw.me.key
3. 修改配置 nginx
修改网站站点的 nginx 配置文件,如: vi /usr/local/nginx/conf/vhost/。 我们这里会增加 https 的访问,并针对 http 访问做 301 重定向。修改后的设置参考如下(红色部分为新增内容):
# http 301 to https server { listen 80; server_name lzw.me www.lzw.me; rewrite ^(.*) https://$host$1 permanent; # return 301 https://$server_name$request_uri; } server { #listen 80; #listen [::]:80; listen 443 ssl; ssl on; ssl_certificate /root/ssl/1_lzw.me_bundle.crt; ssl_certificate_key /root/2_lzw.me.key; server_name lzw.me www.lzw.me; ....
修改完成后,重启 nginx,即可生效。
4. 带来的问题
一些第三方网站的插件、广告不支持 HTTPS 方式引用,则无法继续使用。 如百度分享、百度联盟广告、新浪微博博客组件/评论箱等。