> 友情提示:最好是阿里云服务器和备案域名,混搭暂时没试过
> [Docker 安装文档](https://blog.levnli.cn/archives/centos7an-zhuang-docker)
# 1. 获取免费ssl证书
打开阿里云官方搜索:`ssl证书`
# 2. 创建免费ssl证书
填写对应域名的用户申请信息,然后提交申请,等待状态变更为已签发
# 3. 下载ssl证书
点击下载,选择Nginx类型下载
# 4. 将ssl证书上传到服务器中
> 如果还未在Docker中创建Nginx容器,请参考[Docker 安装Nginx并挂载目录](https://blog.levnli.cn/archives/docker%E5%AE%89%E8%A3%85nginx%E5%B9%B6%E6%8C%82%E8%BD%BD%E7%9B%AE%E5%BD%95)
在Nginx容器的挂载配置文件夹中创建一个证书文件夹:`cert`
将下载证书压缩包解压得到 .key 和 .pem 后缀的文件
将这两个文件上传到创建的证书文件夹中
# 5. 修改配置文件
```shell
server {
#配置HTTPS的默认访问端口为443。
listen 443 ssl;
#需要将yourdomain.com替换成证书绑定的域名。
server_name yourdomain.com;
root html;
index index.html index.htm;
#需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate cert/cert-file-name.pem;
#需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
ssl_certificate_key cert/cert-file-name.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的TLS协议的类型
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm;
}
}
```
按ESC键,输入`:wq`保存退出
# 6. 检查配置文件是否正确
`docker exec -it Nginx容器ID ./usr/sbin/nginx -t`
如果提示Error,检查秘钥配置路径
这里配置**秘钥路径**为容器内的路径指向
# 7. 检查443端口是否开启
查看防火墙状态
`systemctl status firewalld`
如果防火墙开启状态,可以选择关闭或者添加端口
关闭防火墙
`systemctl stop firewalld`
查看防火墙已开放的端口
`firewall-cmd --zone=public --list-ports`
防火墙开放指定端口443(添加后刷新防火墙,执行指令)
`firewall-cmd --zone=public --add-port=443/tcp --permanent`
刷新防火墙
`firewall-cmd --reload`
在阿里云实例安全组中开放443端口
Docker中Nginx配置阿里云ssl证书全流程