nginx安装配置SSL/HTTPS证书说明
- 参考配置文件里的省略号代表原来http的配置文件内容,根据实际情况替换参考配置文件中的证书文件路径(高亮标示行);
- 如果收到的证书公钥为pem后缀,则自行修改配置文件中的证书文件后缀,或者修改证书文件后缀,保持二者文件名完全一致;
- 确认服务器443端口已开放,对部分云服务器商(如阿里云/腾讯云),还需要在产品控制台的安全组开放443端口,具体请参考云服务商文档;
- 重载/重启nginx,使配置生效;
- 如果使用了CDN/负载均衡,若CDN支持http协议回源则只在CDN上配置证书即可。如果CDN产品不支持http协议回源,则需要同时在服务器和CDN上配置证书,详情可以咨询相应CDN产品技术支持。
参考配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | server
{
listen 443 ssl;
...
ssl on;
ssl_certificate /usr/local/nginx/conf/ssl/yourdomain_com_chained.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/yourdomain_com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
...
}
|
强制HTTPS
nginx的强制HTTPS在配置文件server容器中实现,有两种方式
HTTP与HTTPS在不同的server容器中
注意修改实际域名。
| server {
listen 80;
server_name yourdomain.com;
rewrite ^/(.*) https://$host/$1 permanent;
...
}
server
{
listen 443 ssl;
...
}
|
HTTP与HTTPS在同一个server容器中
注意修改实际域名。
| server {
listen 80;
listen 443 ssl;
server_name example.com;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
...
}
|