官网
freessl.cn/
证书普及
blog.freessl.cn/ssl-cert-fo…
证书申请& 配置教程
blog.freessl.cn/acme-quick-…
什么是https协议?
https协议是由SSL+http协议构建的安全协议,支持加密传输和身份认证, 安全性比http要更好,因为数据的加密传输,更能保证数据的安全性和完整性。
nginx配置ssl证书
server {
listen 80;
#填写绑定证书的域名 且注意 不要在server_name 后面加http 或者https 会影响多站点配置端口冲突的问题
server_name www.xxxxx.com;
#把http的域名请求转成https,相当于用户访问http也可以自动跳转到https,避免出现网页提示不安全
#用地址重写规则 rewrite ^(.*)$ https://${server_name}$1 permanent;
return 301 https://$host$request_uri;
}
server {
# 配置监听443 端口
listen 443 ssl;
#证书配置开始=================================================
#证书文件名称
ssl_certificate_key /etc/nginx/ssl/xxxx.key;
#私钥文件名称 .crt和.pem都可以用
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#证书配置结束=================================================
server_name www.xxxxx.com;
location /api/ {
#rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:9330/;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location ^~ /fmsf {
root /home/xxxx/xxx/xxxx;
proxy_set_header Host $host;
expires 30d;
access_log off;
}
location / {
root /home/xxxx/xxx/xxxx;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
docker容器配置ssl证书
# 1.基于docker-compose 部署容器 nginx,docker-compose.yml配置如下:
version: '3'
services:
nginx:
image: nginx:latest #镜像名称
container_name: nginx #设置容器名称
restart: always #跟随docker的启动而启动
network_mode: host #网络端口模式为主机 设置这个以后 不能再设置端口,类似docker --net: host
volumes: #挂载卷命令
- /mnt/data/docker-mount/nginx/conf/nginx.conf:/etc/nginx/nginx.conf #映射配置文件入口文件
- /mnt/data/docker-mount/nginx/html:/usr/share/nginx/html #nginx静态资源根目录挂载
- /mnt/data/docker-mount/nginx/logs:/var/log/nginx #日志文件挂载
- /mnt/data/docker-mount/nginx/conf.d:/etc/nginx/conf.d #映射配置文件
- /mnt/data/docker-mount/nginx/ssl:/etc/nginx/ssl #挂载证书配置目录
- /home/xxx/web:/home/xxxx/web #自定义扩展静态资源目录挂载
- /home/xxx/static:/home/xxx/static #自定义扩展静态资源目录挂载
#ports: #宿主主机端口80 映射到 容器端口80
# - 80:80
# 2.配置文件跟nginx配置的文件一样,这里区别一下路径
#如果在linux中直接安装nginx,是可以直接写全路径的
# 私钥文件名称 .crt/.pem/.cer都可以用
# 证书key .pem/.key都可以用
# 证书挂载到docker中的路径
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/xxxx.key;
# 3.重要说明
1)、/mnt/data/docker-mount/nginx/ssl:/etc/nginx/ssl 宿主主机目录挂载 -> nginx容器的目录
2)、这两个目录都必须授予权限
chown -R /mnt/data/docker-mount/nginx/ssl
chown -R /etc/nginx/ssl
3)、挂载后,一定要重启docker-compose 而不是单单的重启 nginx容器,否则会挂载失败
# 停止服务容器。
docker-compose stop
# 后台启动
docker-compose up -d
# 关于docker-compose 命令讲解可以参考这篇
https://github.com/tuonioooo/docker/blob/master/docker-compose/docker-compose%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4.md
其他域名证书的申请
腾讯云申请SSL
申请SSL证书指南
cloud.tencent.com/document/pr…
免费SSL证书申请
cloud.tencent.com/document/pr…
阿里云申请SSL
免费SSL证书申请
help.aliyun.com/zh/ssl-cert…
申请SSL证书指南
help.aliyun.com/zh/ssl-cert…
最后
所有注册的免费域名证书基本上都是一年时间,过期后需要自动续期,
免费证书与付费证书的基本区别
对比项 | 免费证书 | 付费证书 |
---|---|---|
安全等级 | 一般 | 高 |
证书运行环境的兼容性 | 一般 | 高 |
CA中心对证书的安全保险赔付 | 不支持 | 支持 |
证书服务周期 | 仅支持1年(即证书的有效期是1年,过期后必须重新申请和安装证书,运维管理成本高) | 提供托管服务(在证书即将过期时,自动提交新证书的申请),支持最长3年的服务周期 |
通过续费补齐旧证书的剩余有效期 | 不支持 | 支持(Digicert DV通配符证书除外) |
证书数量限制 | 每个自然年可免费申请20张,需要更多证书时可付费购买 | 不限制 |
支持保护的网站域名类型 | 仅支持保护一个单域名 | 支持保护单域名、通配符域名、多域名 |
支持绑定IP地址 | 不支持 | GlobalSign品牌的OV单域名证书支持 |
支持的证书类型 | 仅DV | DV、OV、EV |
人工客服支持 | 不支持 | 支持 |
关注公众号 “程序猿的游戏开源工具密圈” 不迷路