一个域名问题

一.写在前面

前天遇到了一个问题就是我用edge和firefox浏览器可以用daxiongx.cn来访问就有ssl证书,但是用google和手机就不行,然后通过我发现是因为我申请的证书没包括daxiongx.cn这个主域名,申请的是www.daxiongx.cn,那为什么edge就可以呢,问了ai,ai说是我以前用edge访问过daxiongx.cn,然后服务做了代理跳转到了www.daxiongx.cn,然后走了缓存才会这样的,这个是测试域名的ssl证书的网站

ssl server test

下面是和ai的对话总结

二.对话

我们刚刚主要排查了 Let's Encrypt 给 daxiongx.cn 主域名补证书 这件事。

1. 你现在的证书情况

你执行了:

bash 复制代码
sudo certbot certificates

看到当前证书名是:

text 复制代码
www.daxiongx.cn

证书里已有域名是:

text 复制代码
www.daxiongx.cn
minio-console.daxiongx.cn
minio.daxiongx.cn
www.ws.daxiongx.cn
xadmin.daxiongx.cn

但是没有主域名:

text 复制代码
daxiongx.cn

所以 https://daxiongx.cn 在 Chrome 里可能会证书不匹配。


2. 为什么 Edge 能访问,Chrome 不行

因为旧证书没有 daxiongx.cn。

如果 Edge 实际访问的是:

text 复制代码
http://daxiongx.cn

Nginx 可以先收到 HTTP 请求,然后 301 跳转到:

text 复制代码
https://www.daxiongx.cn

而 www.daxiongx.cn 在证书里,所以能打开。

但如果 Chrome 直接访问:

text 复制代码
https://daxiongx.cn

浏览器会先做 TLS 握手和证书校验。旧证书里没有 daxiongx.cn,所以证书校验失败。这个时候 HTTP 请求还没到 Nginx,Nginx 的 301 跳转根本没有机会执行。

所以解决办法就是:把 daxiongx.cn 加进证书里。

之后如果你还想让主域名跳到 www,Nginx 可以这样写:

nginx 复制代码
server {
    listen 443 ssl;
    server_name daxiongx.cn;

    ssl_certificate /etc/nginx/cert/www.daxiongx.cn.pem;
    ssl_certificate_key /etc/nginx/cert/www.daxiongx.cn.key;

    return 301 https://www.daxiongx.cn$request_uri;
}

前提是证书已经包含 daxiongx.cn。

相关推荐
孤狼GPT2 小时前
ChatGPT、Codex排查实录:接口偶发502/504,应用日志却没有报错,到底该查哪一层?
nginx·codex·chatgptplus·chatgptpro·接口排查
2601_9623811316 小时前
历史视频朝代更替动效怎么做?把 AE 关键帧换成 AI 分镜动画的实战拆解
人工智能·nginx·音视频
数据杂坛18 小时前
【Python程序开发系列】一文搞清楚Gunicorn以及和Nginx的区别
python·nginx·gunicorn
锅巴编程18 小时前
nginx-413-client-max-body-size
运维·nginx
cpolar技术支持1 天前
服务器上的 Nginx 只想改配置却不敢动?把 Nginx-UI 跑起来,用 MCP 让 AI 助手帮你安全改配置,再用 cpolar 把面板短时开给自己
nginx·ai·cpolar·mcp·nginx-ui
春天花会开1311 天前
内网 HTTPS 部署实战:私有 CA + Nginx 反向代理全流程复盘
运维·nginx·https
还是大剑师兰特7 天前
解决nginx错误:http://localhost:7000正常,http://localhost:7000/map 报错404
nginx·大剑师
xing-xing7 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
PC2005-cloud7 天前
Nginx 防盗链配置实战:用 referer 模块保护网站静态资源
nginx
PHP实战开发录7 天前
Nginx上传大文件为什么报413
nginx·php·开发