启用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 reload