前言
本次演示环境基于之前配置的docker环境下的nginx,服务器为腾讯云其它如阿里,华为基本都一样大同小异。
一、将ssl绑定到域名下并认证
下面我们拿领取的一年免费ssl证书为例
点击进去后绑定我们的域名进行签发,这里因为当时操作时候忘了截图所以没有实际对应图片。傻瓜式按照提示来就可以,绑定域名后会提示我们进行验证。可选择方案有两种一种添加解析记录,一种采取像微信小程序那样将指定文件放置于服务器下的方式。这里我们采用官方推荐的跨界方式添加解析记录,下一步会给你提供对应解析记录的值。我们需要进入控制台找到域名解析添加解析记录
将之前给你提供的解析值等信息照搬填入后回头查看认证结果,全部填写正确的情况下此时已经通过认证。这里需要注意的一点是切记还需要添加ipv4的解析,如果没有将我们的服务器ip进行解析是无法访问的。同时要保证安全组配置443端口是开启的。
二、下载证书并上传至服务器
返回ssl管理中心,可以看到认证通过后我的证书中就会有对应颁发的证书我们需要进行下载在nginx中配置
点击下载证书将证书下载到本地解压后通过工具上传到服务器nginx配置目录下
解压缩后,可获得相关类型的证书文件。其中包含 Nginx 文件夹和 CSR 文件:
文件夹名称:Nginx
文件夹内容:
1_cloud.tencent.com_bundle.crt 证书文件
2_cloud.tencent.com.key 私钥文件
上传至服务器:
三、修改配置文件
下面是一份简单的配置文件:
orker_processes 2; #设置值和CPU核心数一致
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
#SSL 访问端口号为 443
listen [::]:443 ssl;
listen 443 ssl;
#填写绑定证书的域名
server_name www.lvhj.club;
#证书文件名称
ssl_certificate 1_www.lvhj.club_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_www.lvhj.club.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html; #网站根目录,和容器创建时指定的位置一致
index index.html index.htm;
}
location /webjars{
proxy_pass http://xxxx:9292;
}
location /swagger-ui{
proxy_pass http://xxxx:9292;
}
location /swagger-resources{
proxy_pass http://xxxx:9292;
}
location /v3{
proxy_pass http://xxxx:9292;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
#填写绑定证书的域名
server_name www.lvhj.club;
#把http的域名请求转成https
rewrite ^(.*)$ https://$host$1 permanent;
}
}
docker 挂载配置文件和证书启动
docker run --restart=always --name nginx -d -p 80:80 -p 443:443 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/1_www.xxxx.club_bundle.crt:/etc/nginx/1_www.xxxx.club_bundle.crt -v /home/nginx/conf/2_www.xxxx.club.key:/etc/nginx/2_www.xxxx.club.key -v /home/nginx/log:/var/log/nginx nginx:latest
访问配置成功