如果您的nginx是编译安装的,请在编译安装时启用SSL模块 --with-http_ssl_module
怎么看nginx是否启用了ssl模块? 进入nginx安装目录/sbin,执行 nginx -V
查看。
证书签发之后,可以在「你我信控制台」-- 「我的证书」--「SSL证书」-- 「查看详情」 -- 「证书下载」页面, 「一键打包下载」。
下载得到一个压缩包,解压它,里面有个nginx文件夹,其中的 .crt
和 .key
文件就是对应证书和私钥文件。
上传.crt
和.key
文件到服务器任何地方,但是不要放在网站的目录下。
假设您应该已经建立好了http://站点,网站可以通过http://访问。
2.1 复制nginx http://配置代码片段。像下面这样是一个非常简单的演示片段(您的http配置可能会更复杂,不管多复杂,先复制完整),粘贴到 与原来的nginx配置代码下面,与原来的nginx配置代码平级。
server {
listen 80;
server_name demo.niwoxin.com;
location / {
root /www/wwwroot/demo.niwoxin.com;
index index.html index.htm;
}
}
2.2 修改代码片段。“删1加6”
比如我刚刚把证书放在 /etc/ssl/
我的证书路径是 /etc/ssl/demo_niwoxin_com.crt
我的私钥路径是 /etc/ssl/demo_niwoxin_com.key
server {
listen 80;
server_name demo.niwoxin.com;
#增加下面1行 让http跳转到https
return 301 https://$server_name$request_uri;
#增加上面1行
location / {
root /www/wwwroot/demo.niwoxin.com;
index index.html index.htm;
}
}
#上面是原来HTTP的配置
#下面是HTTPS的配置
server {
#删除下面1行
#listen 80;
#增加了下面5行
listen 443 ssl http2; #监听和声明
ssl_certificate /etc/ssl/demo_niwoxin_com.crt; #证书文件路径
ssl_certificate_key /etc/ssl/demo_niwoxin_com.key; #私钥文件路径
ssl_protocols TLSv1.2 TLSv1.3; #启用的ssl协议版本
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; #ssl加密套件
#增加了上面5行
server_name demo.niwoxin.com;
location / {
root /www/wwwroot/demo.niwoxin.com;
index index.html index.htm;
}
}
测试配置文件,确保没有错误。
nginx -t
执行命令,重载nginx配置文件,让https配置生效
nginx -s reload
如果没有其他问题,网站可以通过https访问了。