123.com 和 www.123.com 是两个不同的子域名,你需要在 DNS 和 Web 服务器中配置它们的关系(通常会设置为自动跳转或都指向同一个内容)。
具体原因分析
-
DNS 配置不一致
123.com 是主域名(根域名)。
www.123.com 是主域名下的一个子域名(www 是子域名)。
如果你的 DNS 服务商(如阿里云、Cloudflare、DNSPod 等)中:
只配置了一个 A 记录(如 www.123.com -> IP地址) 那么 123.com 访问时可能无法正确解析,或访问到不同服务。
-
服务器未做统一跳转或绑定
Web 服务器(如 Nginx、Apache)可以区分你访问的是 123.com 还是 www.123.com,默认情况下它们是两个不同的 Host 请求:
如果你只绑定了 server_name www.123.com,那访问 123.com 会 404 或跳到默认站点。
如果你没有设置重定向策略,用户访问哪个就显示哪个,不统一。
✅ 推荐解决方案 ✅ 方法 1:在 DNS 中同时添加这两个记录 主机记录 记录类型 记录值 @ A IP 地址 www A IP 地址
@ 表示根域名(123.com)
✅ 方法 2:Nginx 中设置统一跳转(推荐) 示例:强制将 123.com 跳转到 www.123.com
监听 123.com 的请求并重定向到 www.123.com
server { listen 80; server_name 123.com; return 301 http://www.123.com$request_uri; }
正常服务的 www.123.com
server { listen 80; server_name www.123.com; root /var/www/your_site; index index.html; }
这样不管用户输入哪个地址,都会统一跳转到 www.123.com,避免 SEO 问题、Cookie 混乱等问题。
✅ 一、从阿里云下载证书
-
登录阿里云控制台 → SSL证书服务 → 选择已签发的证书
-
点击【下载证书】,选择服务器类型:
如果你用的是 Nginx,就选择 Nginx
如果是 Apache,就选 Apache
下载后你会获得一个 .zip 压缩包,里面通常有这些文件:
✅ Nginx 证书包示例内容:
yourdomain.pem # 证书(包括中间证书) yourdomain.key # 私钥
✅ Apache 证书包示例内容:
yourdomain.crt # 证书 yourdomain.key # 私钥 chain.pem # 中间证书
✅ 二、上传证书到服务器
建议上传到 /etc/ssl/yourdomain/(或你自定义的路径):
scp yourdomain.* root@your_server:/etc/ssl/yourdomain/
✅ 三、配置服务器(Nginx / Apache) 🔧 Nginx 配置示例
编辑你的站点配置文件(如 /etc/nginx/conf.d/yourdomain.conf):
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/ssl/yourdomain/yourdomain.pem;
ssl_certificate_key /etc/ssl/yourdomain/yourdomain.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/your_site;
index index.html index.htm;
}
然后重启 Nginx:
sudo nginx -t # 检查配置是否正确 sudo systemctl reload nginx
🔧 Apache 配置示例
编辑虚拟主机配置(如 /etc/httpd/conf.d/ssl.conf 或 /etc/apache2/sites-available/yourdomain.conf):
<VirtualHost *:443> ServerName yourdomain.com ServerAlias www.yourdomain.com
DocumentRoot /var/www/your_site
SSLEngine on
SSLCertificateFile /etc/ssl/yourdomain/yourdomain.crt
SSLCertificateKeyFile /etc/ssl/yourdomain/yourdomain.key
SSLCertificateChainFile /etc/ssl/yourdomain/chain.pem
<Directory "/var/www/your_site">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
可选:强制 HTTP 跳转到 HTTPS
<VirtualHost *:80> ServerName yourdomain.com ServerAlias www.yourdomain.com Redirect permanent / https://yourdomain.com/
重启 Apache:
Ubuntu/Debian
sudo a2enmod ssl sudo systemctl reload apache2
CentOS
sudo systemctl reload httpd
✅ 四、验证是否生效
访问 https://yourdomain.com 看是否跳转成功
用浏览器点 HTTPS 小锁 → 查看证书是否是阿里云颁发的
可使用 SSL 检测工具:
https://www.ssllabs.com/ssltest/