Ssl
使用 Apache2 將子域重定向到 HTTPS 中的子域
我有這些子域:
link.domain.com links.domain.com
我想重定向
link.domain.com
到links.domain.com
. 為此,我使用了與此處所述相同的方法:將子域重定向到子域 Apache2並且它可以工作。
links.domain.com
我為Let’s Encrypt安裝了一個 TLS 證書,我可以links.domain.com
在 HTTPS 中完美訪問。我希望從link.domain.com
to的重定向links.domain.com
在 HTTPS 中也有效。這是我的conf文件:
<IfModule mod_ssl.c> <VirtualHost *:443> DocumentRoot /var/www/links/ ServerName links.domain.com <Directory "/var/www/links/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error_links.log CustomLog ${APACHE_LOG_DIR}/access_links.log combined # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn SSLCertificateFile /etc/letsencrypt/live/links.domain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/links.domain.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>
我已經嘗試過以下方法:
- 添加
ServerAlias link.domain.com RedirectMatch permanent ^link.domain.com/(.*)$ https://links.domain.com/$1
行後
ServerName links.domain.com
。
- 添加
<VirtualHost *:443> ServerName link.domain.com RedirectMatch permanent ^/(.*)$ https://links.domain.com/$1 </VirtualHost>
在已經定義的 VirtualHost 之前和之後。
沒有人工作。
你有什麼主意嗎 ?
您需要在兩個
VirtualHost
s中都有 SSL 配置,這RedirectMatch
不是必需的。嘗試:<IfModule mod_ssl.c> <VirtualHost *:443> ServerName link.example.com SSLCertificateFile /etc/letsencrypt/live/links.example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/links.example.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf Redirect / https://links.example.com/ </VirtualHost> </IfModule>
請注意,如果您的證書的主題備用名稱
NET::ERR_CERT_COMMON_NAME_INVALID
中也沒有,您仍然會收到 TLS 錯誤。link.example.com