[英]How can I configure multiple <virtualhost> with the same SSL Certificate - Apache
語境:
我有一個域: example.com
,但我想創建一個像api.example.com
這樣的域,以將其用作網絡服務。
昨晚,我使用Let's Encrypt獲得了免費的SSL證書。
我的域example.com
應該在/var/www/website/
打開內容。
我的域api.example.com
應該在/var/www/api/
打開內容。
我正在Internet上尋找一些信息,並且已經在/etc/apache2/sites-available/
創建了這些文件。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/website/
LogLevel debug
ErrorLog ${APACHE_LOG_DIR}/example.com/error.log
<Directory "/var/www/website/">
Options FollowSymLinks
AllowOverride None
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/website/
LogLevel debug
ErrorLog ${APACHE_LOG_DIR}/example.com/error_ssl.log
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/example.com/privkey.pem
SSLCertificateFile /etc/apache2/ssl/example.com/cert.pem
SSLCertificateChainFile /etc/apache2/ssl/example.com/chain.pem
<Directory "/var/www/website/">
Options FollowSymLinks
AllowOverride None
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName api.example.com
DocumentRoot /var/www/api/
#RewriteEngine On
#RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
<Directory "/var/www/api/">
Options FollowSymLinks
AllowOverride None
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName api.example.com
DocumentRoot /var/www/api/
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/error.log
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/example.com/privkey.pem
SSLCertificateFile /etc/apache2/ssl/example.com/cert.pem
SSLCertificateChainFile /etc/apache2/ssl/example.com/chain.pem
<Directory "/var/www/api/">
Options FollowSymLinks
AllowOverride None
</Directory>
</VirtualHost>
我創建了兩個文件,因為我雖然需要分隔域,但是當我嘗試輸入example.com
我的內容已經在api.example.com
。
使用“ 讓我們加密” ,我為兩個域創建了相同的SSL證書,並且文件位於/etc/apache2/ssl/example.com/
。
我找到了解決方案!
我已經編輯了httpd.conf
和ports.conf
。
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
Listen 80
NameVirtualHost *:443
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
SSLStrictSNIVHostCheck on
現在,我可以將域名用於網站和網絡服務
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.