【发布时间】:2022-06-18 03:01:06
【问题描述】:
我正在尝试在我的服务器上托管一个站点 (vultr) 该站点是活动的,并且我有一个来自 Namecheap 的域名指向它。我使用了 Let's Encrypt 并为 www.example.com 和 example.com 设置了 https。
我也设置了它,所以当您输入 ip 时,如:http://111.222.33.444 它会指向安全域名。所以到目前为止一切都按我的预期工作,但后来我遇到了这个问题:如果有人输入 https:///111.222.33.444,就会出现不受信任的网站警告页面。我也希望这也直接指向https://example.com。
我有用于 http 和 https 的 .conf 文件。我可能在这些文件中也有太多垃圾,所以可能需要更有效地编写这些。
home.conf:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/home
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:80>
ServerName 111.222.33.444
ServerAlias 111.222.33.444
UseCanonicalName Off
Redirect "/" "https://www.example.com/"
#ErrorDocument 403 "Sorry, direct IP access not allowed."
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
home-le-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/home
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
<VirtualHost *:443>
ServerName 111.222.33.444
ServerAlias 111.222.33.444
UseCanonicalName Off
Redirect "/" "https://www.example.com"
ErrorDocument 403 "Sorry, direct IP access not allowed."
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
【问题讨论】:
-
至于“...任何建议...”,这不是本网站的目的。 codereview.stackexchange.com 有一个姊妹网站,但我不知道这是否会成为主题。
-
我的问题与该帖子所指的不同。其他网站如何保护自己?我只是想保护我的网站,以便如果用户输入 ip 最终结果是安全域,我不想要 ip 的 ssl 证书,因为我不希望 ip 成为访问网站的一种方式,我想要它重定向。
-
评论展开回答。
标签: apache