虚拟主机,端口 443 和 SSL 问题

虚拟主机,端口 443 和 SSL 问题

我有一个 centos 服务器,但是我遇到了一些有关端口 443 和 ssl 的问题。我的问题是,我的服务器上的所有域都可以从 HTTPS 端口访问。

比如当我通过 HTTPS 访问我服务器上的域名时,该域名没有 SSL,它会显示默认主机页面(默认 apache 页面)

我只希望我指定的域名只​​使用 ssl 端口。

我有一个域名证书,并且添加了如下虚拟主机:

<VirtualHost *:80 *:443>
    ..
    ..
     ServerName domain.com
     ServerAlias www.domain.com
     ErrorLog ...
     CustomLog ...
</VirtualHost>

其他证书文件位置在 /etc/httpd/conf.d/ss.conf 中指定

我也尝试创建 2 个单独的端口 80 和 443,但对我的情况仍然没有帮助。如果我使用 HTTPS 访问其他域,我仍然会看到默认的 Apache 页面。

感谢帮助

答案1

你可能想尝试一下:

<VirtualHost *:80>
  ServerName www.domain.com
  ServerAlias domain.com

  // non ssl config

  RewriteEngine on
  RewriteRule ^/(.*)$ https://www.domain.com/$1 [L,R=301]
</VirtualHost>
<VirtualHost *:443>
  ServerName www.domain.com
  ServerAlias domain.com

  // your ssl configuration etc

  RewriteEngine on
  RewriteCond %{HTTP_HOST} !^www.domain.com
  RewriteRule ^/(.*)$ https://www.domain.com/$1 [L,R=301]
</VirtualHost>

应该将所有请求重定向到 www.domain.com,无论用户使用什么其他域。如果您希望优先使用 domain.com 而不是 www.domain.com,请将 www. 从 ServerName 和 Rewrite 语句中移出并将其添加到 ServerAlias。

*:80 中的重写将你的 www.domain.com 重定向到 https 站点,而 *:443 中的重写可确保你的请求到达https://www.domaincom

相关内容