SSL证书配置

今天群友发现我的博客证书过期了,重新申请一个免费的部署一下

在这里插入图片描述

证书申请

在这里插入图片描述

点击创建证书
image.png

绑定对应的域名,选择快捷签发,点击提交审核
image.png

image.png

点击验证,如果购买的域名和服务器都在同一个账号下,系统会自动帮你配置一条记录类型为 TXT 的 DNS 解析, 并告诉你域名验证成功。

TIP : 如果域名和服务器不在同一个账号上,则需要你自己登录域名所属账号,手动添加 DNS 解析记录,然后再验证提交审核。

image.png

签发成功后,将该SSL证书下载
image.png

选择Nginx类型的SSL证书(是啥服务器就选择啥),将其下载到本地
image.png

将下载好的证书解压(.key和.pem后缀),然后上传到服务器上,(/docker/nginx/cert,此目录用来存放ssl证书)

image.png

因为我这里之前已经配置过了Nginx上的ssl相关配置,我只需要重新启动Nginx即可。docker restart nginx,好嘞博客出现啦!,有时间去改改样式,太丑了。
在这里插入图片描述

nginx 配置ssl证书

这里以网站域名来命名的 ssl 配置文件,你可以根据自己的实际域名来自定义文件名,只要是 .conf 结尾就行,Nginx 都会正常加载

nginx/conf.d/目录下,新建xxxx.conf文件,用于配置ssl证书。

修改defaut.conf配置文件的内容

server {
    listen       80;
    listen  [::]:80;

  
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

新建robindeblog_ssl.conf,内容如下

server {
    listen 80;
    listen  [::]:80;
    server_name robindeblog.cn www.robindeblog.cn;
    # 将所有 http 请求 301 重定向到 https 请求,
    return 301 https://www.robindeblog.cn$request_uri;
}

server { 
    # 监听 443 https 端口 , 启用 HTTP/2 协议。HTTP/2HTTP 协议的下一版本,它引入了一些性能优化,例如多路复用(Multiplexing)和头部压缩,以提高页面加载速度。
    listen 443 ssl http2;
    # 域名,修改成你自己的
    server_name robindeblog.cn www.robindeblog.cn;

    client_max_body_size 100M;
    # Nginx 容器中的 ssl 证书存放路径(后续会挂载到宿主机的 /docker/nginx/cert/ 目录下)
    ssl_certificate /etc/nginx/cert/www.robindeblog.cn.pem;
    ssl_certificate_key  /etc/nginx/cert/www.robindeblog.cn.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 / {
        try_files $uri $uri/ @router;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location @router {
        rewrite ^.*$ /index.html last;
    }

    location /api {
        rewrite  ^/api/(.*)$ /$1 break;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 反向代理到后台 Web 服务
        proxy_pass http://172.17.0.1:8080;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

注意点1:这里配置的 SSL 证书路径在 /etc/nginx/cert/ 目录下,等会正式启动容器时,需要将这个目录挂载到宿主机的 /docker/nginx/cert 目录,否则 Ngnix 启动时会找不到文件。
注意点2:将原本在 default.conf 的反向代理配置统一移动到了 robindeblog_ssl.conf 的配置文件中,方便后续以网站为维度来做管理。当你准备上线一个新网站时,只需再另外新建一个 conf 配置文件即可。

img.robindeblog.cn

server { 
    # 监听 443 https 端口 , 启用 HTTP/2 协议
    listen 443 ssl http2;
    # 图床服务的域名,修改成你自己的
    server_name img.robindeblog.cn;

    client_max_body_size 100M;
    # 图床域名的 ssl 证书
    ssl_certificate /etc/nginx/cert/img.robindeblog.cn.pem;
    ssl_certificate_key  /etc/nginx/cert/img.robindeblog.cn.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;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 反向代理到 Minio 9000 端口
        proxy_pass http://172.17.0.1:9000;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

删除掉原有的容器,重新创建一个nginx容器(因为需要指定数据卷映射—有数据卷映射就不需要删除了)

docker rm -rf nginx
docker run -d \ 
-p 80:80 -p 443:443 \ 
--name nginx \
-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/logs:/var/log/nginx \
-v /docker/nginx/cert:/etc/nginx/cert \
-v /docker/nginx/html:/usr/share/nginx/html \
nginx:1.19.4 

参数说明:

  • -p 80:80 -p 443:443:将容器的 80、443 端口映射到主机的 80、443 端口;
  • –restart=always: Docker 重启时,容器也跟着重启;
  • -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf:将容器中的 /etc/nginx/nginx.conf 文件挂载到宿主机中的 /docker/nginx/nginx.conf 文件;
  • -v /docker/nginx/conf.d:/etc/nginx/conf.d:将容器中 /etc/nginx/conf.d 目录挂载到宿主机中的 conf.d 目录下;
  • -v /docker/nginx/logs:/var/log/nginx:将容器中的 /var/log/nginx 目录挂载到宿主机中的 /docker/nginx/logs 目录下, 用以查看 Nginx 日志;
  • -v /docker/nginx/cert:/etc/nginx/cert : 将容器中的 /etc/nginx/cert 目录挂载到宿主机中 /docker/nginx/cert:/etc/nginx/cert 目录下,用于容器内部能够正常读取到 SSL 证书;
  • -v /docker/nginx/html:/usr/share/nginx/html : 将前端工程所在的目录,挂载到容器中的 /usr/share/nginx/html 文件夹上;

最后记得安全组策略开放443端口 https端口,这样才能正常访问。

  • 27
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
配置nginx的SSL证书,可以按照以下步骤进行操作: 1. 购买SSL证书:首先,你需要从可信任的证书颁发机构(CA)购买SSL证书。这通常涉及到提供一些组织和域名验证的信息。 2. 获取SSL证书文件:一旦你购买了SSL证书,CA将向你提供一些文件,包括公钥证书文件和私钥文件。通常,这些文件以.pem或.crt为扩展名。 3. 将证书文件复制到服务器:将公钥证书文件和私钥文件复制到nginx服务器的指定目录。可以创建一个新的目录来存储这些文件。 4. 配置nginx虚拟主机:打开nginx的配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf),找到你要配置SSL的虚拟主机部分。在该部分中,添加以下配置项: ``` server { listen 443 ssl; server_name your_domain.com; ssl_certificate /path/to/your_certificate.crt; ssl_certificate_key /path/to/your_private_key.key; # 可选配置项 # ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 指定支持的SSL/TLS协议版本 # ssl_ciphers HIGH:!aNULL:!MD5; # 指定加密算法 # ... # 其他相关配置 # ... } ``` 请将`your_domain.com`替换为你的域名,将`/path/to/your_certificate.crt`和`/path/to/your_private_key.key`替换为你实际存储证书文件的路径。 5. 保存配置文件并重新启动nginx:保存配置文件后,使用以下命令重新启动nginx服务,使配置生效: ``` sudo systemctl restart nginx ``` 6. 验证SSL配置:打开你的网站,在浏览器中输入`https://your_domain.com`,如果没有报错或警告,且浏览器显示已通过SSL验证的标志,那么证书配置就成功了。 这样,你就完成了nginx的SSL证书配置。请确保在配置和使用证书时遵循最佳安全实践,并定期更新证书
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杀死一只知更鸟debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值