首先要到证书提供商购买域名证书(推荐Symantec/GeoTrust 品牌证书,一切都是为了网站安全。)
本实验使用的是自签证书,如果不知道怎么制作请点这里OPENSSL生成SSL自签证书。
设置nginx.conf配置文件,访问默认http监听的80端口将自动转给https监听的443端口,这样就强制使用SSL证书加密了。
server {
listen 80;
server_name www.mydomain.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
listen 443;
server_name www.mydomain.com;
ssl on;
ssl_certificate /etc/nginx/conf.d/ssl/server.crt; #证书存放路径
ssl_certificate_key /etc/nginx/conf.d/ssl/server.key; #密钥存放路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:1m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
client_max_body_size 50m;
location / {
root /home/www/html;
index index.html index.htm;
}
#..........................省略部分内容
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
或者使用return形式重定向到https
server {
listen 80;
server_name www.mydomain.com;
return 301 https://${server_name}$request_uri;
}
#.......其余内容同rewrite类似