[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fU9FCFvLcNEU-rp5AhmArlPggD6Bu2D7BuXHHoxmtnhc":3},{"code":4,"message":5,"data":6},200,"成功",{"id":7,"createdAt":8,"title":9,"content":10,"summary":11,"image":12,"uid":13,"user":14,"categoryId":21,"category":22,"subCategoryId":24,"subCategory":25,"comments":27,"status":17,"reason":28,"notice":28,"visitCount":29,"commentCount":30,"keywords":31},146,"2025-02-02T15:09:41.368Z","给nginx申请、配置和更新ssl证书","这篇文章简要介绍一下如何配置ssl证书，拿腾讯云上的ssl配置进行举例，让大家了解这个操作流程。\n\n## 申请并验证ssl证书\n腾讯云上的ssl证书主页：[https://console.cloud.tencent.com/ssl](https://console.cloud.tencent.com/ssl)\n\n如截图所示：\n![腾讯云ssl中心](https://image.xinwei.ltd/image1738507039421.png)\n\n你可以直接购买一个ssl证书，针对泛域名或者特定域名，当然也可以申请一个免费的ssl证书，但是当前时刻免费的ssl证书只有3个月90天的有效期，过期后ssl证书就不能使用了。\n\n![ssl证书申请流程](https://image.xinwei.ltd/image1738507194864.png)\n\n如上图所示，整个的ssl证书申请流程，就是简单的3步。\n- [x] 第一步，要在云平台上购买/申请ssl证书，绑定相应的域名；\n- [x] 第二步，选择dns验证方式，并且完成dns验证。有截图中所示的3种验证方式，我一般使用手动，你也可以使用其他验证方式。然后点击确定后，会生成一个dns记录，会提示让你将这条记录添加到云解析中。\n主页：[https://console.cloud.tencent.com/cns](https://console.cloud.tencent.com/cns)\n![域名云解析](https://image.xinwei.ltd/image1738507745925.png)\n\n- [x] 第三步，云解析中添加完dns记录后，回到刚刚的dns验证页面，点击“验证dns”，现在基本几分钟就可以完成dns记录。\n\n下载ssl证书：\n![ssl证书下载](https://image.xinwei.ltd/image1738507881646.png)\n\n## 配置nginx的ssl\n找到你的nginx的nginx.conf文件，对于ssl证书配置，最终目的是要实现http传输时通过443端口进行ssl验证加密。\n那么你需要在nginx.conf文件中配置443端口，需要分为2步：\n- [ ] 需要将你刚刚下载的ssl证书解压得到以下几个文件：\n![ssl证书截图](https://image.xinwei.ltd/image1738508174460.png)\n如截图所示，会有4种格式的证书对应不同平台的ssl证书配置需要，在nginx.conf配置中，我们只需要使用到`.key`、`.crt`这2个文件。\n\n- [ ] 将上面的2个文件上传到你的服务器中某一个位置。如果是使用docker的话，会比较方便，我自己也是配置的nginx的docker容器来进行配置，通过bind进行目录绑定。\n\n- [ ] 配置nginx的443端口\n```nginx.conf\n...\nserver {\n        listen 443 ssl;\n        listen [::]:443 ssl;\n\n        #请填写绑定证书的域名\n        server_name www.abc.com; \n        #请填写证书文件的相对路径或绝对路径\n        ssl_certificate ./cert/xxx/2025-02-02/xxx.crt; \n        #请填写私钥文件的相对路径或绝对路径\n        ssl_certificate_key ./cert/xxx/2025-02-02/xxx.key; \n        ssl_session_timeout 5m;\n        #请按照以下协议配置\n        ssl_protocols TLSv1.2 TLSv1.3; \n        #请按照以下套件配置，配置加密套件，写法遵循 openssl 标准。\n        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; \n        ssl_prefer_server_ciphers on;\n\n        charset utf-8;\n\n        location / {\n            root   /usr/share/nginx/html/xxx;\n            index  index.html index.htm;\n\n            # 此处一定要改成nginx容器中的目录地址，宿主机上的地址容器访问不到\n            # 命令必须用 root, 不能用 alias\n            \n            #try_files $uri $uri/ /index.html;\n\n            proxy_pass http://xxx.xxx.xxx.xxx:1234; # ip端口转发\n            proxy_set_header Host $host;  \n            proxy_set_header X-Real-IP $remote_addr;  \n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  \n            proxy_set_header X-NginX-Proxy true;  \n            #add_header 'Access-Control-Allow-Origin' '*';\n        }\n\n        error_page  404              /404.html;\n\n        # redirect server error pages to the static page /50x.html\n        #\n        error_page   500 502 503 504  /50x.html;\n        location = /50x.html {\n            root   html;\n        }\n    }\n...\n```\n上面的配置就是针对域名`www.abc.com`配置443访问端口，配置对应的ssl证书。\n这里的配置中，我有代理转发的配置，大家可以忽略，或者仅仅作为参考，我们的目的仅在于其中的ssl证书配置部分。\n- [ ] 给nginx的ssl配置完成后，需要对nginx进行重载，那么你可以在nginx的环境下，执行以下命令，重载nginx的配置.\n```terminal\n# 检测nginx.conf中的语法是否正确\nnginx -t\n\n# nginx重载\nnginx -s reload\n```\n\n结束。\n\n以上应该差不多讲清了这个ssl证书流程了吧。\n\n希望对大家有帮助。","这篇文章简要介绍一下如何配置ssl证书，拿腾讯云上的ssl配置进行举例，让大家了解这个操作流程。","https://image.xinwei.ltd/image1738507039421.png",499668042977349,{"phone":15,"userId":13,"nickName":16,"vipType":17,"avatar":18,"sign":19,"createdAt":20},"13121171998","全栈老韩",1,"https://image.xinwei.ltd/images/IMG_5430.JPG","全栈工程师，擅长iOS App开发、前端（vue、react、nuxt、小程序&Taro）开发、Flutter、React Native、后端（midwayjs、golang、express、koa）开发、docker容器、seo优化等。","2024-01-01T16:14:30.305Z",2,{"id":21,"name":23},"IT技术",30,{"id":24,"name":26,"parentId":21},"Nginx",[],"",124,0,"ssl,dns ssl,https,nginx ssl,https ssl,nginx,server ssl,ssl certificate,nginx https"]