前置条件
购买证书或者申请各大云服务商的一年期免费证书(到期记得续签),下载证书到本地,内含.crt(域名证书)和.key(私钥)两个文件。
配置nginx(正常配置)
server {
listen 80;#监听80端口
listen 443 ssl;#监听443端口
server_name domain.com;
#引用证书(必须,放在conf/ssl目录下可以用相对路径,其他位置用绝对路径)
ssl_certificate ssl/domain.com.crt;
ssl_certificate_key ssl/domain.com.key;
#协议优化(可选,优化https协议,增加安全性)
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
#其他的配置信息···
#http强制跳转https
if ($scheme = http ) {
return 301 https://$host$request_uri;
}
}
配置nginx(单端口配置)
网站仅有一个端口可以访问的时候,要做到访问http://host:8080跳转到https://host:8080的效果,必须使用以下配置:
server {
listen 8080 ssl;# 监听8080端口
server_name domain.com;
#引用证书
ssl_certificate ssl/domain.com.crt;
ssl_certificate_key ssl/domain.com.key;
#其他的配置信息···
#使用8080端口设为ssl端口,当使用http访问时,会报497错误,利用该错误跳转页面至https
error_page 497 https://$host:$server_port$request_uri;
}
重新载入nginx配置
nginx -s reload