질문: html 디렉토리에 있는 모든 웹사이트에 1개의 OpenSSL 인증서를 어떻게 적용합니까?
문제:문서 루트가 /var/www/html/ 이므로 방문하거나 위치한 곳만 표시 됩니다 https://localhost.site1.com
.https://localhost.site2.com
index.html
/var/www/html/index.html
default-ssl.conf
다음 위치에 2개의 WordPress 멀티사이트(및 기타 사이트)가 있습니다 /var/www/html/
.
/var/www/html/site1.com
그리고
/var/www/html/site2.com
내 안에는 default-ssl.conf
다음이 있습니다:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/localhost.error.log
CustomLog ${APACHE_LOG_DIR}/localhost.access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
# "force-response-1.0" for this.
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
내 /etc/hosts
파일에는 다음이 있습니다.
127.0.1.1 excalibur
127.0.0.1 localhost
127.0.0.1 localhost.site1.com *.localhost.site1.com # mainsite url
127.0.0.1 subsite-a.localhost.site1.com
127.0.0.1 subsite-b.localhost.site1.com
127.0.0.1 subsite-c.localhost.site1.com
127.0.0.1 localhost.site2.com *.localhost.site2.com # mainsite url
site1.com의 가상 호스트에는 다음이 포함됩니다.
<VirtualHost *:80>
ServerName localhost.site1.com
ServerAlias www.localhost.site1.com
# If this is the default configuration file we can use: 'ServerName localhost' or also 'ServerAlias localhost'.
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/localhost.site1.com.error.log
CustomLog ${APACHE_LOG_DIR}/localhost.site1.com.access.log combined
DocumentRoot /var/www/html/site1.com
<Directory /var/www/html/site1.com>
Options None FollowSymLinks
# Enable .htaccess Overrides:
AllowOverride All
DirectoryIndex index.php
Order allow,deny
Allow from all
Require all granted
</Directory>
<Directory /var/www/html/site1.com/wp-content>
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
그리고 site2.com의 가상 호스트에는 다음이 포함됩니다.
<VirtualHost *:80>
ServerName localhost.site2.com
ServerAlias www.localhost.site2.com
# If this is the default configuration file we can use: 'ServerName localhost' or also 'ServerAlias localhost'.
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/localhost.site2.com.error.log
CustomLog ${APACHE_LOG_DIR}/localhost.site2.com.access.log combined
DocumentRoot /var/www/html/site2.com
<Directory /var/www/html/site2.com>
Options None FollowSymLinks
# Enable .htaccess Overrides:
AllowOverride All
DirectoryIndex index.php
Order allow,deny
Allow from all
Require all granted
</Directory>
<Directory /var/www/html/site2.com/wp-content>
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
어떤 팁이 있나요?
답변1
가상 호스트는 포트 80에서 수신 대기하고 있으며 HTTPS 연결은 포트 443을 사용합니다. 이를 위해 기본 SSL 구성이 포트 443에 대한 유일한 구성이므로 제공됩니다.
VirtualHost
정의를 다음으로 변경하면 <VirtualHost *:443>
문제가 해결될 것입니다.