123.com 和 www.123.com 是两个不同的子域名,你需要在 DNS 和 Web 服务器中配置它们的关系(通常会设置为自动跳转或都指向同一个内容)。

具体原因分析

  1. DNS 配置不一致

    123.com 是主域名(根域名)。

    www.123.com 是主域名下的一个子域名(www 是子域名)。

    如果你的 DNS 服务商(如阿里云、Cloudflare、DNSPod 等)中:

     只配置了一个 A 记录(如 www.123.com -> IP地址)
    
     那么 123.com 访问时可能无法正确解析,或访问到不同服务。
    
  2. 服务器未做统一跳转或绑定

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 混乱等问题。

✅ 一、从阿里云下载证书

  1. 登录阿里云控制台 → SSL证书服务 → 选择已签发的证书

  2. 点击【下载证书】,选择服务器类型:

    如果你用的是 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/