发布于 

Nginx配置https访问

申请SSL证书

在ssl证书申请网站申请ssl证书,这里以腾讯云为例

腾讯云证书申请网址:https://console.cloud.tencent.com/ssl

点击申请证书

按照步骤填写完成,进行域名身份验证。我这边选择的手动验证,因为我的域名和服务器都是阿里云上购买的,需要手动验证。

在阿里云配置域名解析

主机记录、记录值、记录类型按照腾讯云给出的值进行填写,然后等待验证通过(10分钟左右)

颁发证书后将文件下载到本地解压

将Nginx中的.crt和.key文件上传到nginx.conf同级目录下

nginx配置证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
server {
listen 443 ssl;
#填写绑定证书的域名
server_name cloud.tencent.com;
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /var/www/cloud.tencent.com;
index index.html index.htm;
#证书文件名称
ssl_certificate 1_cloud.tencent.com_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_cloud.tencent.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
}
server {
listen 80;
#填写绑定证书的域名
server_name cloud.tencent.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}

修改完成后重启nginx即可

nginx在docker中的情况

停止运行的nginx容器

重新创建容器,将存放证书的文件夹也映射到容器中

1
2
3
4
5
6
7
8
9
10
docker run -d \
-p 80:80 \
-p 443:443 \
--name nginx \
--restart always \
--network=host \
-v /usr/local/docker/nginx/www:/usr/share/nginx/html \
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker/nginx/logs:/var/log/nginx \
-v /usr/local/docker/nginx/conf/zhenshu:/etc/nginx/zhenshu nginx:1.8

在配置nginx.conf中证书路径时添加一层你的文件夹路径

1
2
3
4
#证书文件名称
ssl_certificate zhenshu/1_cloud.tencent.com_bundle.crt;
#私钥文件名称
ssl_certificate_key zhenshu/2_cloud.tencent.com.key;

证书查找路径是从/etc/nginx/路径开始查找的,路径一定不要配错。

中途本来项配置的是相对路径结果,证书查找路径变成了/etc/nginx/../../xxx/xxx/xx目录,所以文件一定要挂载到/etc/nginx/目录下,不然会找不到的!

配置完成启动后进入网站查看

https配置完成!


本站由 @binvv 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。