跳到主要内容

实战:使用Certbot签发免费ssl泛域名证书(主域名及其它子域名共用同一套证书)-2024.8.4(成功测试)

阅读需 18 分钟

实战:使用Certbot签发免费ssl泛域名证书(主域名及其它子域名共用同一套证书)-2024.8.4(成功测试)

image-20240804094049959

目录

[toc]

版权声明

本着开源共享、共同学习的精神:

本文是在 博主Ruyu 文章:《Ruyu-Blog 博客升级HTTPS》https://www.kuailemao.xyz/article/49 基础上增加了自己实践过程的一些细节,转载无需和我联系,但请注明文章来源。如果侵权之处,请联系博主进行删除,谢谢~

强烈推荐:

博主Ruyu

Ruyu-Blog开源博客gitee地址:https://gitee.com/kuailemao/ruyu-blog

Ruyu-Blog开源博客网站地址:https://www.kuailemao.xyz/

image-20240804154704039

image-20240804154737946

背景

原来自己部署的ruyu-blog博客都是https,浏览器一直提示不安全。刚好伟大的群主也发布了网站升级https的教程,这里就跟着一起做了升级。

我将自己所有网站都进行了子域名的划分,全部使用同一个证书(泛域名证书),非常方便。

通过子域名的配置,自己网站各模块内容更加细化,nice。

另外,此文章说明了如何给自己站点配置子域名方案:

1、在域名解析那里添加自己的子域名解析

2、nginx里配置子域名配置

3、验证

前文

域名定义

image-20240802193419872

什么叫主域名/子域名

onedayxyy.cnnas.onedayxyy.cn 这两个域名的主要区别在于它们的级别和可能指向的服务。

  1. 顶级域名(TLD)和二级域名(SLD):

    • onedayxyy.cn: 这个域名是一个二级域名。.cn 是国家顶级域名(ccTLD),代表中国,而 onedayxyy 是在 .cn 下注册的二级域名。一般来说,这样的域名用于代表公司、组织或个人的主要网络地址。
  2. 子域名:

    • nas.onedayxyy.cn: 这个域名是 onedayxyy.cn子域名。子域名通常用于组织主域名下面的不同服务或内容。在这个例子中,nas 可能表示网络附加存储(Network Attached Storage),这意味着这个子域名可能指向与存储相关的服务或网站部分。

使用场景区别:

  • 访问服务: 访问 onedayxyy.cn 通常会带你到该组织的主页或主要服务页面,而访问 nas.onedayxyy.cn 可能会带你到专门的网络存储服务或提供特定功能的页面。

  • 配置和管理: 在域名系统(DNS)管理上,你可以为每个子域名配置不同的记录,这意味着 nas.onedayxyy.cn 可以指向一个不同的IP地址,或者使用不同的DNS记录,比如为了负载均衡、地理位置服务等。

在实际应用中,子域名非常有用,**它允许域名所有者创建特定的服务或分类内容,而不需要为每个服务注册新的域名。**这既减少了成本,也使得域名管理更加集中和方便。

==什么叫子域名==

域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等。

image-20240606112050930

举例:

==为什么要设置子域名==

  1. 因为一个主域名可以设置出不同的子域名,所以能够便于用户将不同的子域名应用到不同的业务中。

    例如主域名是aliyun.com,开发者则可以设置子域名api.aliyun.com为接口业务使用,子域名 pay.aliyun.com为支付系统使用。

  2. 实现访问者按照用户指定的子域名进行访问。

    例如主域名是aliyun.com,开发者设置子域名为www.aliyun.comapi.aliyun.com后, 访问者输入这两个域名时就可以实现访问。

我的子域名规划

主域名:
起始页:onedayxyy.cn

子域名:
知识库:wiki.onedayxyy.cn
博客:blog.onedayxyy.cn
博客后台:blogadmin.onedayxyy.cn
博客存储:minio.onedayxyy.cn
相册:photo.onedayxyy.cn
音乐:music.onedayxyy.cn
说说:moments.onedayxyy.cn

子域名都是通过Nginx的反向代理来实现的。

image-20240804093854482

Certbot简介

关于certbot

image-20240803071422778

image-20240803071438908

官方部署方法

https://certbot.eff.org/instructions?ws=nginx&os=centosrhel7&tab=standard

image-20240803062215121

image-20240803062430406

指导手册

https://eff-certbot.readthedocs.io/en/latest/#

image-20240803072046374

部署手册(官网)

image-20240803071618051

环境

centos7.6
ecs服务器 (得拥有1台云服务器)

源码

不涉及

写在前面

本次是手动申请的,Cerbort如何自动签发证书/续签证书,待后续研究……

手动申请

因为我的项目使用的是Docker不是,自动申请/续签不太适用,所以使用手动申请,自动申请方法自己去看官方文档。

使用Certbot ACME客户端。

1、选择好对应的环境

https://certbot.eff.org/instructions?ws=nginx&os=centosrhel7&tab=standard

image-20240803062215121

2、安装 Certbot

yum install epel-release -y
yum install snapd -y
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap

snap install --classic certbot

3、准备 Certbot 命令

sudo ln -s /snap/bin/certbot /usr/bin/certbot

4、手动运行方式

#作者命令
certbot -d 域名(可以使用*.代表所有二级域名) --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly


#自己命令(使用这个命令即可)
certbot -d onedayxyy.cn -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

后续根据提示进行邮箱填写、DNS的TXT记录验证、等等……

然后会得到两个关键文件,注意看提示信息的路径。

image-20240803062653952


这里稍微记录下一些细节:

到域名解析上那里添加解析验证记录:(验证同意后,这个记录值建议删除)

image-20240804092124050

image-20240803100103524

[root@ruyub-blog-prod onedayxyy.cn]# pwd
/root/config/archive/onedayxyy.cn
[root@ruyub-blog-prod onedayxyy.cn]# ll
total 16
-rw-r--r-- 1 root root 1289 Aug 3 10:00 cert1.pem
-rw-r--r-- 1 root root 1566 Aug 3 10:00 chain1.pem
-rw-r--r-- 1 root root 2855 Aug 3 10:00 fullchain1.pem
-rw------- 1 root root 241 Aug 3 10:00 privkey1.pem
[root@ruyub-blog-prod onedayxyy.cn]#

以上生成好证书。

5、nginx配置(主域名&子域名,nginx.conf拆分)

再次把这2个证书对ecs里的来证书进行替换,测试:

image-20240804092250535

重启nginx:

nginx -s reload


这里我贴一下自己ecs里的nginx配置:

以下nginx.conf配置是生产力可用的配置,亲测有效!2024年8月4日

自己ecs已安装好nginx服务:

nginx.conf配置文件:

cat /etc/nginx/nginx.conf

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
worker_connections 1024;
}

http {
gzip on; # 启用 gzip 压缩
gzip_vary on; # 根据请求中的 `Accept-Encoding` 响应头决定是否启用 gzip
gzip_proxied any; # 在所有代理请求中启用压缩
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 指定哪些类型的响应需要压缩
gzip_comp_level 5; # 压缩等级(范围是 1-9,高级别意味着更好的压缩但会消耗更多 CPU 资源)
gzip_min_length 256; # 只对超过给定长度的响应启用压缩
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;

include /etc/nginx/mime.types;
default_type application/octet-stream;

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
charset utf-8;

# Settings for a TLS enabled server.

}

ssl证书位置:

[root@docusaurus-wiki cert]#pwd
/etc/nginx/cert
[root@docusaurus-wiki cert]#ll
total 8
-rw-rw-rw- 1 root root 2855 Aug 3 10:00 fullchain1.pem
-rw-rw-rw- 1 root root 241 Aug 3 10:00 privkey1.pem
[root@docusaurus-wiki cert]#

conf.d目录下:

[root@docusaurus-wiki conf.d]#pwd
/etc/nginx/conf.d
[root@docusaurus-wiki conf.d]#ll
total 28
-rw-r--r-- 1 root root 5252 Aug 3 14:57 blog.conf
-rw-r--r-- 1 root root 2498 Aug 3 14:15 home.conf
-rw-r--r-- 1 root root 1749 Aug 3 10:27 moments.conf
-rw-r--r-- 1 root root 1370 Aug 3 10:26 music.conf
-rw-r--r-- 1 root root 1745 Aug 3 10:23 photo.conf
-rw-r--r-- 1 root root 1404 Aug 3 09:11 wiki.conf
[root@docusaurus-wiki conf.d]#

主域名配置文件:

[root@docusaurus-wiki conf.d]#cat home.conf 
server {
listen 80;
server_name onedayxyy.cn www.onedayxyy.cn;

#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name onedayxyy.cn www.onedayxyy.cn;

root /root/home3.0;

location / {
index index.html index.htm;
}

# ……删除部分敏感信息
ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

wiki配置文件:

[root@docusaurus-wiki conf.d]#cat wiki.conf 
server {
listen 80;
server_name wiki.onedayxyy.cn;
#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.onedayxyy.cn;

root /root/rsync/rsync-docusaurus/build;

location / {
index index.html index.htm;
}

ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

相册配置文件:

[root@docusaurus-wiki conf.d]#cat photo.conf 
server {
listen 80;
server_name photo.onedayxyy.cn;

#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name photo.onedayxyy.cn;

#root /root/home3.0;

#location / {
# index index.html index.htm;
#}


location / {
proxy_pass http://47.100.215.163:8082/; # 实际的后台路径
client_max_body_size 100M;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

6、配置域名解析

来到自己域名云厂商配置位置,添加自己的子域名解析记录:

image-20240804093218325

对应我当前的信息如下:

主域名:
起始页:onedayxyy.cn

子域名:
知识库:wiki.onedayxyy.cn
博客:blog.onedayxyy.cn
博客后台:blogadmin.onedayxyy.cn
博客存储:minio.onedayxyy.cn
相册:photo.onedayxyy.cn
音乐:music.onedayxyy.cn
说说:moments.onedayxyy.cn

7、验证(完美)

https://onedayxyy.cn/

image-20240803100518511

https://wiki.onedayxyy.cn/

image-20240803100457546

https://blog.onedayxyy.cn/

image-20240804092002960

8、本人所有站点

起始页:

https://onedayxyy.cn/

image-20240804094001561

知识库:

https://wiki.onedayxyy.cn/

image-20240804094027266

博客:

https://blog.onedayxyy.cn/

image-20240804094049959

相册:

https://photo.onedayxyy.cn/

image-20240804094127219

音乐:

https://music.onedayxyy.cn/

image-20240804094148521

说说:

https://moments.onedayxyy.cn/

image-20240804094220242

注意点

① 切记一申请泛域名证书的命令方式👸

问题:我利用certbot申请的*.onedayxyy.cn泛域名证书,给子域名wiki.onedayxyy.cn都能正常使用,但是主域名onedayxyy.cn依然报不安全的证书,这个是为什么呢?

https://onedayxyy.cn/

image-20240803095048063

https://wiki.onedayxyy.cn/

image-20240803095104547

gpt回答:

当你使用 Certbot 申请泛域名证书(例如 *.onedayxyy.cn)时,该证书通常只覆盖通配符子域名,而不包括主域名(例如 onedayxyy.cn)。这是由于泛域名证书的定义方式所决定的。

解决方法

要确保主域名 onedayxyy.cn 也能使用安全的证书,你需要在申请证书时明确包含主域名。以下是具体步骤:

  1. 重新申请证书: 使用 Certbot 重新申请证书,并在命令中明确指定主域名和泛域名。例如:

    sudo certbot certonly --manual -d onedayxyy.cn -d *.onedayxyy.cn

    这样,Certbot 会生成一个包含主域名 onedayxyy.cn 和泛域名 *.onedayxyy.cn 的证书。

  2. 配置 Nginx: 确保你的 Nginx 配置文件中正确引用了新生成的证书。例如:

    server {
    listen 443 ssl;
    server_name onedayxyy.cn;

    ssl_certificate /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/onedayxyy.cn/privkey.pem;

    # 其他配置...
    }

    server {
    listen 443 ssl;
    server_name wiki.onedayxyy.cn;

    ssl_certificate /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/onedayxyy.cn/privkey.pem;

    # 其他配置...
    }
  3. 验证和重新加载 Nginx: 在修改配置文件后,使用以下命令测试配置文件的语法是否正确:

    sudo nginx -t

    如果测试通过,使用以下命令重新加载 Nginx 配置:

    sudo systemctl reload nginx

通过以上步骤,你应该能够确保主域名 onedayxyy.cn 和泛域名 *.onedayxyy.cn 都能使用安全的证书。


自己重新再测试:

#有问题版
certbot -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

#gpt回答版
sudo certbot certonly --manual -d onedayxyy.cn -d *.onedayxyy.cn

#正确版
certbot -d onedayxyy.cn -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

之前生成的:

image-20240803095424151

先删除目录,再进行测试:

rm -rf config/

certbot -d onedayxyy.cn -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

image-20240803100103524

[root@ruyub-blog-prod onedayxyy.cn]# pwd
/root/config/archive/onedayxyy.cn
[root@ruyub-blog-prod onedayxyy.cn]# ll
total 16
-rw-r--r-- 1 root root 1289 Aug 3 10:00 cert1.pem
-rw-r--r-- 1 root root 1566 Aug 3 10:00 chain1.pem
-rw-r--r-- 1 root root 2855 Aug 3 10:00 fullchain1.pem
-rw------- 1 root root 241 Aug 3 10:00 privkey1.pem
[root@ruyub-blog-prod onedayxyy.cn]#

再次把这2个证书进行替换,测试:

image-20240803100317552

重启nginx:

nginx -s reload

验证:(完美)

https://onedayxyy.cn/

image-20240803100518511

https://wiki.onedayxyy.cn/

image-20240803100457546

代办

① Cerbort如何自动签发证书/续签证书?

后续有空了研究。

FAQ

问题:https证书能同时给其子域名使用吗?2024.7.23(已解决)😊

背景

我的域名是onedayxyy.cn,然后我为他申请了一个https证书,且在nginx里已经配置了https证书。

但是我现在使用了wiki.onedayxyy.cn子域名来提供wiki服务,那么我想通过https://wiki.onedayxyy.cn访问,请问原来的https证书能直接配置给我的子域名wiki.onedayxyy.cn吗?

gpt回答

如果您已经为 onedayxyy.cn 申请了一个通配符证书(例如 *.onedayxyy.cn),那么这个证书将自动覆盖所有子域名,包括 wiki.onedayxyy.cn。通配符证书允许您在一个证书中保护主域名下的所有子域名。

如果您申请的是单域名证书(例如 onedayxyy.cn),那么这个证书只能用于 onedayxyy.cn 这个域名,而不能用于 wiki.onedayxyy.cn 这个子域名。在这种情况下,您需要为 wiki.onedayxyy.cn 单独申请一个新的证书。

以下是一些步骤来检查和配置您的证书:

  1. 检查证书类型

    • 打开您的证书文件(通常是 .crt.pem 文件)。
    • 查看证书的主题(Subject)字段,确认是否包含通配符(例如 *.onedayxyy.cn)。
  2. 配置 Nginx

    • 如果您拥有通配符证书,确保在 Nginx 配置中正确指定了证书文件和密钥文件的路径。
    • wiki.onedayxyy.cn 配置一个新的 server 块,并确保它指向相同的证书和密钥文件。

以下是一个示例 Nginx 配置:

server {
listen 80;
server_name wiki.onedayxyy.cn;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name wiki.onedayxyy.cn;

ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;

# 其他配置...

location / {
# 您的 Wiki 服务配置
}
}

确保将 /path/to/your/certificate.crt/path/to/your/private.key 替换为实际的证书和密钥文件路径。

  1. 重启 Nginx

    • 保存配置文件并重启 Nginx 以应用更改:

      sudo systemctl restart nginx

通过以上步骤,您应该能够使用 https://wiki.onedayxyy.cn 访问您的 Wiki 服务,前提是您拥有适用于子域名的正确证书。

亲自验证

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.onedayxyy.cn;
root /root/rsync/rsync-docusaurus/build;

location / {
index index.html index.htm;
}

ssl_certificate "cert/www.onedayxyy.cn.pem";
ssl_certificate_key "cert/www.onedayxyy.cn.key";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

image-20240723063840622

但是,我查看pem文件,是一串代码啊,没那个(Subject)字段???

image-20240723214356261

但是,我查看pem文件,是一串代码啊,没那个(Subject)字段???

/etc/nginx/cert/www.onedayxyy.cn.pem

gpt回答:

openssl x509 -in /etc/nginx/cert/www.onedayxyy.cn.pem -text -noout

image-20240723064323650

以下是一个示例输出:

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
04:00:00:00:00:01:23:45:67:89:ab:cd:ef
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US
Validity
Not Before: Sep 1 12:00:00 2023 GMT
Not After : Sep 1 12:00:00 2024 GMT
Subject: CN=*.onedayxyy.cn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:bb:cc:dd:ee:ff:11:22:33:44:...

在这个输出中,Subject 字段会显示为 CN=*.onedayxyy.cn 或者 CN=onedayxyy.cn。如果您的证书是通配符证书,它将显示 CN=*.onedayxyy.cn

如果输出中 Subject 字段包含 *.onedayxyy.cn,那么您的证书是通配符证书,可以用于 wiki.onedayxyy.cn 子域名。如果是 CN=onedayxyy.cn,则只能用于主域名 onedayxyy.cn,不能用于子域名。

如果您仍然遇到问题,可以将证书文件的内容复制粘贴给我,我可以帮助您分析。好的

再次亲自测试:

可以发现,我之前申请的是一个单域名证书哦。🤣

openssl x509 -in /etc/nginx/cert/www.onedayxyy.cn.pem -text -noout

image-20240723064449424

结论

利用免费ssl证书生成工具生成泛域名证书,那么自己的额所有站点都可以用这一套证书了,很方便。

问题:cdn上我配置的是对主域名onedayxyy.cn加速,请问这个对其子域名wiki.onedayxyy.cn也会加速吗?-2024.7.24(已解决)

CDN(内容分发网络)的配置通常是针对具体的域名进行的。因此,如果您的 CDN 配置是针对主域名 onedayxyy.cn 进行加速,那么它并不会自动对子域名 wiki.onedayxyy.cn 进行加速。子域名需要单独配置才能享受 CDN 加速服务。

要为子域名 wiki.onedayxyy.cn 配置 CDN 加速,您需要在 CDN 服务提供商的管理控制台中进行以下操作:

  1. 添加子域名:在 CDN 服务提供商的管理控制台中,添加 wiki.onedayxyy.cn 作为一个新的加速域名。

  2. 配置子域名:为 wiki.onedayxyy.cn 配置相应的加速设置,包括缓存策略、源站配置、SSL证书等。

  3. 更新DNS记录:将 wiki.onedayxyy.cn 的 DNS 记录指向 CDN 提供的加速节点。这通常涉及将子域名的 CNAME 记录指向 CDN 提供的特定域名。

示例步骤(通用流程,具体步骤可能因 CDN 提供商而异)

  1. 登录 CDN 控制台:登录到您的 CDN 服务提供商的管理控制台。

  2. 添加加速域名

    • 找到添加加速域名的选项。
    • 输入 wiki.onedayxyy.cn 作为新的加速域名。
  3. 配置加速规则

    • 配置缓存策略,例如缓存时间、忽略缓存参数等。
    • 配置源站地址,即您的实际服务器地址。
    • 配置SSL证书,以确保HTTPS访问。
  4. 获取CNAME记录

    • 在配置完成后,CDN 提供商会为您提供一个 CNAME 记录。
    • 例如,wiki.onedayxyy.cn 可能需要指向 cdn123.example.com
  5. 更新DNS设置

    • 转到您的域名注册商或 DNS 服务提供商的控制台。
    • 添加或更新 wiki.onedayxyy.cn 的 CNAME 记录,使其指向 CDN 提供的 CNAME 地址。

注意事项

  • 独立配置:每个子域名需要独立配置 CDN 加速。这意味着每个子域名都需要单独添加到 CDN 控制台,并进行相应的设置。
  • SSL证书:确保为每个子域名配置 SSL 证书,以支持 HTTPS 访问。
  • 优化设置:根据子域名的不同用途,您可能需要配置不同的缓存策略和优化设置。

通过这些步骤,您可以确保 wiki.onedayxyy.cn 也能够通过 CDN 获得加速服务。、

总结

那目前我就不对https://wiki.onedayxyy.cn/子域名进行加速了,目前测试加载速度还行,如果后续实在加载太慢,我这里就做下cdn加速;

案例:子域名反向代理配置方法-2024.8.4(已解决)

http:

[root@docusaurus-wiki conf.d]#cat photo.conf 
server {
listen 80;
server_name photo.onedayxyy.cn;

location / {
proxy_pass http://47.100.215.163:8082/; # 实际的后台路径
client_max_body_size 100M;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

https:

[root@docusaurus-wiki conf.d]#cat photo.conf 
server {
listen 80;
server_name photo.onedayxyy.cn;

#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name photo.onedayxyy.cn;

#root /root/home3.0;

#location / {
# index index.html index.htm;
#}


location / {
proxy_pass http://47.100.215.163:8082/; # 实际的后台路径
client_max_body_size 100M;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

案例:DNS解析配置方式

在云厂商域名dns解析那里需要的配置:

本次是在阿里云dns解析上配置的。

image-20240722221959360

记录类型:

image-20240722222017197

记录值:

image-20240722222058662

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人主页:

https://onedayxyy.cn

image-20240711101911622

🍀 知识库:

https://wiki.onedayxyy.cn/

image-20240804075128231

🍀 博客:

http://blog.onedayxyy.cn/

image-20240804075845906

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

往期推荐

我的开源项目:

https://wiki.onedayxyy.cn/docs/OpenSource

image-20240804074953487

玩转Typora+Docusuaurus-起始页交流群:

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20240804100023954