Apache,VirtualHost。如何阻止通过 IP 地址访问端口 443?

Apache,VirtualHost。如何阻止通过 IP 地址访问端口 443?

/etc/apache2/sites-available/ 下的 000-default.conf 文件内容如下:

VirtualHost 11.222.111.111:80>
    ServerName 11.222.111.111
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options nosniff
    Header always append X-Frame-Options SAMEORIGIN
    Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
    Header always set Strict-Transport-Security "max-age=15768000; preload"
    ServerAdmin webmaster@localhost
    DocumentRoot /home/000/public_html
    DirectoryIndex index.html index.htm index.php index.php4 index.php5
    ErrorLog ${APACHE_LOG_DIR}/error.log
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^11\.222\.111\.111
    RewriteRule ^/(.*) https://domain.tld/$1 [NC,R=301,L]

如您所见,当有人访问 IP 时,它会重定向到受 SSL 保护的域。但是,我不知道如何重定向https://11.222.111.111到同一个网站,而不会导致 Apache 崩溃。

我在单独的 .conf 文件中有大约 40 个 VirtualHost。上述配置将通过 IP 访问重定向到域,但当我使用https://11.222.111.111我明白了SSL 错误代码:BAD_CERT_DOMAIN

有什么方法可以删除SSL 错误代码:BAD_CERT_DOMAIN或重新认证https:// 11.222.111.111和我访问的同一个网站http://11.222.111.111

谢谢。

答案1

SSL_ERROR_BAD_CERT_DOMAN 表示您的证书颁发给了不同的域。您在 https 连接中使用的证书必须针对您使用的 DNS 名称颁发。 据说证书可以包含 IP 地址,但最好为服务器(尤其是公共服务器)保留 DNS 记录。为正确的名称颁发证书,错误就会消失。

不过,有几件事要说。

首先,如果您使用自签名证书或您自己的 CA,那么错误不会真正消失,除非您在客户端计算机上导入证书。

其次,您的配置似乎盲目地将连接重定向到 https 站点,为此,许多指令可以简单地省略。如果用户实际上从未从该 VirtualHost 下载任何内容,则没有理由定义 aDocumentRoot或 a DirectoryIndex。此外,标头最好在 https VirtualHost 中定义。

相关内容