实战:使用Certbot签发免费ssl泛域名证书(主域名及其它子域名共用同一套证书)-2024.8.4(成功测试)
目录
[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/
背景
原来自己部署的ruyu-blog博客都是https,浏览器一直提示不安全。刚好伟大的群主也发布了网站升级https的教程,这里就跟着一起做了升级。
我将自己所有网站都进行了子域名的划分,全部使用同一个证书(泛域名证书),非常方便。
通过子域名的配置,自己网站各模块内容更加细化,nice。
另外,此文章说明了如何给自己站点配置子域名方案:
1、在域名解析那里添加自己的子域名解析
2、nginx里配置子域名配置
3、验证
前文
域名定义
什么叫主域名/子域名
onedayxyy.cn
和 nas.onedayxyy.cn
这两个域名的主要区别在于它们的级别和可能指向的服务。
顶级域名(TLD)和二级域名(SLD):
onedayxyy.cn
: 这个域名是一个二级域名。.cn
是国家顶级域名(ccTLD),代表中国,而onedayxyy
是在.cn
下注册的二级域名。一般来说,这样的域名用于代表公司、组织或个人的主要网络地址。
子域名:
nas.onedayxyy.cn
: 这个域名是onedayxyy.cn
的子域名。子域名通常用于组织主域名下面的不同服务或内容。在这个例子中,nas
可能表示网络附加存储(Network Attached Storage),这意味着这个子域名可能指向与存储相关的服务或网站部分。
使用场景区别:
访问服务: 访问
onedayxyy.cn
通常会带你到该组织的主页或主要服务页面,而访问nas.onedayxyy.cn
可能会带你到专门的网络存储服务或提供特定功能的页面。配置和管理: 在域名系统(DNS)管理上,你可以为每个子域名配置不同的记录,这意味着
nas.onedayxyy.cn
可以指向一个不同的IP地址,或者使用不同的DNS记录,比如为了负载均衡、地理位置服务等。
在实际应用中,子域名非常有用,**它允许域名所有者创建特定的服务或分类内容,而不需要为每个服务注册新的域名。**这既减少了成本,也使得域名管理更加集中和方便。
==什么叫子域名==
域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等。
举例:
- “.com”是顶级域名(一级域名);
- “aliyun.com”是主域名(二级域名);
- “example.aliyun.com”是子域名(三级域名);
- “www.example.aliyun.com”是子域名的子域(四级域名)。
==为什么要设置子域名==
因为一个主域名可以设置出不同的子域名,所以能够便于用户将不同的子域名应用到不同的业务中。
例如主域名是
aliyun.com
,开发者则可以设置子域名api.aliyun.com
为接口业务使用,子域名pay.aliyun.com
为支付系统使用。实现访问者按照用户指定的子域名进行访问。
例如主域名是
aliyun.com
,开发者设置子域名为www.aliyun.com
和api.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的反向代理来实现的。
Certbot简介
关于certbot
官方部署方法
https://certbot.eff.org/instructions?ws=nginx&os=centosrhel7&tab=standard
指导手册
https://eff-certbot.readthedocs.io/en/latest/#
部署手册(官网)
环境
centos7.6
ecs服务器 (得拥有1台云服务器)
源码
不涉及
写在前面
本次是手动申请的,Cerbort如何自动签发证书/续签证书,待后续研究……
手动申请
因为我的项目使用的是Docker不是,自动申请/续签不太适用,所以使用手动申请,自动申请方法自己去看官方文档。
使用Certbot ACME客户端。
1、选择好对应的环境
https://certbot.eff.org/instructions?ws=nginx&os=centosrhel7&tab=standard
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记录验证、等等……
然后会得到两个关键文件,注意看提示信息的路径。
这里稍微记录下一些细节:
到域名解析上那里添加解析验证记录:(验证同意后,这个记录值建议删除)
[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里的来证书进行替换,测试:
重启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、配置域名解析
来到自己域名云厂商配置位置,添加自己的子域名解析记录:
对应我当前的信息如下:
主域名:
起始页:onedayxyy.cn
子域名:
知识库:wiki.onedayxyy.cn
博客:blog.onedayxyy.cn
博客后台:blogadmin.onedayxyy.cn
博客存储:minio.onedayxyy.cn
相册:photo.onedayxyy.cn
音乐:music.onedayxyy.cn
说说:moments.onedayxyy.cn
7、验证(完美)
8、本人所有站点
起始页:
知识库:
博客:
相册:
音乐:
说说:
注意点
① 切记一申请泛域名证书的命令方式👸
问题:我利用certbot申请的*.onedayxyy.cn泛域名证书,给子域名wiki.onedayxyy.cn都能正常使用,但是主域名onedayxyy.cn依然报不安全的证书,这个是为什么呢?
gpt回答:
当你使用 Certbot 申请泛域名证书(例如
*.onedayxyy.cn
)时,该证书通常只覆盖通配符子域名,而不包括主域名(例如onedayxyy.cn
)。这是由于泛域名证书的定义方式所决定的。
解决方法
要确保主域名 onedayxyy.cn
也能使用安全的证书,你需要在申请证书时明确包含主域名。以下是具体步骤:
重新申请证书:
使用 Certbot 重新申请证书,并在命令中明确指定主域名和泛域名。例如:sudo certbot certonly --manual -d onedayxyy.cn -d *.onedayxyy.cn
这样,Certbot 会生成一个包含主域名
onedayxyy.cn
和泛域名*.onedayxyy.cn
的证书。配置 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; # 其他配置... }
验证和重新加载 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
之前生成的:
先删除目录,再进行测试:
rm -rf config/
certbot -d onedayxyy.cn -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly
[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个证书进行替换,测试:
重启nginx:
nginx -s reload
验证:(完美)
代办
① 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
单独申请一个新的证书。
以下是一些步骤来检查和配置您的证书:
检查证书类型:
- 打开您的证书文件(通常是
.crt
或.pem
文件)。 - 查看证书的主题(Subject)字段,确认是否包含通配符(例如
*.onedayxyy.cn
)。
- 打开您的证书文件(通常是
配置 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
替换为实际的证书和密钥文件路径。
重启 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 {
}
}
但是,我查看pem文件,是一串代码啊,没那个(Subject)字段???
但是,我查看pem文件,是一串代码啊,没那个(Subject)字段???
/etc/nginx/cert/www.onedayxyy.cn.pem
gpt回答:
openssl x509 -in /etc/nginx/cert/www.onedayxyy.cn.pem -text -noout
以下是一个示例输出:
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
结论
利用免费ssl证书生成工具生成泛域名证书,那么自己的额所有站点都可以用这一套证书了,很方便。
问题:cdn上我配置的是对主域名onedayxyy.cn加速,请问这个对其子域名wiki.onedayxyy.cn也会加速吗?-2024.7.24(已解决)
CDN(内容分发网络)的配置通常是针对具体的域名进行的。因此,如果您的 CDN 配置是针对主域名 onedayxyy.cn
进行加速,那么它并不会自动对子域名 wiki.onedayxyy.cn
进行加速。子域名需要单独配置才能享受 CDN 加速服务。
要为子域名 wiki.onedayxyy.cn
配置 CDN 加速,您需要在 CDN 服务提供商的管理控制台中进行以下操作:
添加子域名:在 CDN 服务提供商的管理控制台中,添加
wiki.onedayxyy.cn
作为一个新的加速域名。配置子域名:为
wiki.onedayxyy.cn
配置相应的加速设置,包括缓存策略、源站配置、SSL证书等。更新DNS记录:将
wiki.onedayxyy.cn
的 DNS 记录指向 CDN 提供的加速节点。这通常涉及将子域名的 CNAME 记录指向 CDN 提供的特定域名。
示例步骤(通用流程,具体步骤可能因 CDN 提供商而异)
登录 CDN 控制台:登录到您的 CDN 服务提供商的管理控制台。
添加加速域名:
- 找到添加加速域名的选项。
- 输入
wiki.onedayxyy.cn
作为新的加速域名。
配置加速规则:
- 配置缓存策略,例如缓存时间、忽略缓存参数等。
- 配置源站地址,即您的实际服务器地址。
- 配置SSL证书,以确保HTTPS访问。
获取CNAME记录:
- 在配置完成后,CDN 提供商会为您提供一个 CNAME 记录。
- 例如,
wiki.onedayxyy.cn
可能需要指向cdn123.example.com
。
更新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解析上配置的。
记录类型:
记录值:
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码
x2675263825 (舍得), qq:2675263825。
🍀 微信公众号
《云原生架构师实战》
🍀 个人主页:
🍀 知识库:
🍀 博客:
🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
🍀 知乎
https://www.zhihu.com/people/foryouone
往期推荐
我的开源项目:
https://wiki.onedayxyy.cn/docs/OpenSource
玩转Typora+Docusuaurus-起始页交流群:
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!