ssl证书部署
大约 14 分钟
首要完成的准备工作
- 购买服务器和域名和相关的实名认证/tcp备案/(公安备案可选)
- 域名开启解析,申请免费ssl证书,并将证书下载到本地
- 关闭防火墙,开启443和80端口
- 下载安装docker,加载最新nginx镜像.这里选用的是docker安装脚本进行docker安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
docker pull nginx
还原现场
笔者以前在阿里云购买了域名和服务器,完成了全套操作,由于服务器到期更换至腾讯云,相应备案和解析需要从头来过,特此记录
- 阿里云的域名备案在腾讯云服务器上无法直接使用,需要进行接入备案
- 现在免费的ssl证书从原来的一年期限更改为了3个月,也就是说 一年20个免费证书只能供5个域名正常使用
- 新老nginx配置文件有些许不同,以新的为准
- 域名开启解析非马上生效,需要等待10分钟左右才能生效
- 如遇到打不开的情况可按以下顺序依次检查 是否完成实名备案>是否完成域名解析>是否开放防火墙(腾讯云和服务器的都需要开放)>容器是否映射80和443端口
在配置文件夹地址新建default.conf文件,并将相应的ssl证书上传至此文件夹
server {
listen 80;
server_name www.bjtang.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 80;
server_name blog.bjtang.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 80;
server_name pan.bjtang.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
#设置启用SSL功能。
#原启用指令为ssl on 升级版本后更换
server_name www.bjtang.com;
# www.bjtang.com修改为您证书绑定的域名。
index index.html index.htm;
ssl_certificate /etc/nginx/conf.d/www.bjtang.com.pem;
#将www.bjtang.com.pem替换成您证书的文件名。
#这个路径是容器内部路径,对外做了映射就不用更改了
ssl_certificate_key /etc/nginx/conf.d/www.bjtang.com.key;
#将www.bjtang.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 / {
root /usr/share/nginx/html;
#这个路径是容器内部路径,对外做了映射就不用更改了
#站点目录。
index index.html index.htm;
}
}
server {
listen 443 ssl;
#设置为on启用SSL功能。
server_name blog.bjtang.com;
# localhost修改为您证书绑定的域名。
index index.html index.htm;
ssl_certificate /etc/nginx/conf.d/blog.bjtang.com.pem;
#将domain name.pem替换成您证书的文件名。
ssl_certificate_key /etc/nginx/conf.d/blog.bjtang.com.key;
#将domain name.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 / {
root /usr/share/nginx/html/blog;
#站点目录。
index index.html index.htm;
}
}
server {
listen 443 ssl;
#设置为on启用SSL功能。
server_name pan.bjtang.com;
# localhost修改为您证书绑定的域名。
index index.html index.htm;
ssl_certificate /etc/nginx/conf.d/pan.bjtang.com.pem;
#将domain name.pem替换成您证书的文件名。
ssl_certificate_key /etc/nginx/conf.d/pan.bjtang.com.key;
#将domain name.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 / {
root /usr/share/nginx/html/pan;
#站点目录。
index index.html index.htm;
}
}
#启动nginx
docker run --name nginx -d -p 80:80 -p 443:443 -v 网页文件夹地址:/usr/share/nginx/html -v 配置文件夹地址:/etc/nginx/conf.d --privileged=true -d nginx
参考
ubuntu安装dockers
https://www.runoob.com/docker/ubuntu-docker-install.html