按照腾讯云要求获取ssl证书。
nginx模块开启ssl.
- 确保nginx安装了ssl模块,否则启动会报错
nginx: [emerg] unknown directive "ssl"
,具体安装参考
- 将在腾讯云获取的nginx证书(根据服务器不同会生成不同的ssl文件,这里选择nginx),放在nginx的某个目录下,笔者跟conf文件夹平级建了cert文件夹。
- 配置
nginx.conf
文件
server {
listen 80;
listen 443 ssl; //同时支持https和http要这样写,注意不能用 ssl on
server_name www.domain.cn;//监听的域名
ssl_certificate ../cert/1_www.domain.cn_bundle.crt;//获取到的crt文件
ssl_certificate_key ../cert/2_www.domain.cn.key;//ssl的key
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
}
- 测试一下,看配置文件是否正确,
/usr/local/nginx/sbin/nginx -t
。若配置无误,显示成功。
- 重启nginx,如无意外,网站目前支持https和http同时访问。
若https不能访问,从以下排查原因
- 若使用了阿里云的ecs,则需要把80和443端口暴露出来。可以telnet 测试,
- 检查本机防火墙,是否开启。
- 检查443端口是否监听,若没有监听,则将nginx关闭
/usr/local/nginx/sbin/nginx -stop
,然后重新开启/usr/local/nginx/sbin/nginx
。注意不要nginx -s reload
-