启用SSL开启HTTPS访问已经是当今的主流趋势了,本文旨在提供在nginx上快速配置SSL的简易指南。
申请证书
现在证书越来越便宜,GoDaddy证书只需要几美元,甚至StartSSL、AlphaSSL、腾讯云或七牛云等都可以免费申请到SSL证书。如何申请免费证书本文不再赘述。
上传证书至服务器
把申请到的证书文件(包含证书链和私钥)上传到服务器,保存到一个nginx可以读取到的地方,如/home/ssl/:
/home/ssl/yourname.cer 为证书链 /home/ssl/yourname.key 为公钥 修改nginx配置
在nginx配置文件中,把原来server块中的80端口(http访问)的语句改为443端口,并引入SSL各项配置,同时启用HSTS(HTTP严格传输安全):
server { listen 443 ssl; server_name yourname; root /home/www/yourname; index index.php index.html; ssl_certificate /home/ssl/yourname.crt; ssl_certificate_key /home/ssl/yourname.key; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security "max-age=31536000"; access_log /var/log/nginx/yourname.log combined; location / { # } }然后再新建一个server块,目的是把http访问重定向到https:
server { listen 80; server_name yourname; rewrite ^ https://$host$request_uri? permanent; }保存后重载nginx即可。
service nginx restart 或者: service nginx reload