https免费证书申请 、 nginx / docker 安装部署证书

2023年 10月 9日 76.2k 0

官网

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
人工客服支持 不支持 支持

关注公众号 “程序猿的游戏开源工具密圈” 不迷路

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论