http 및 https 모두에서 표준 포트를 사용하도록 Apache에서 VirtualHost를 설정해야합니다.
SSL 엔진을 활성화하면 (아래와 같이)-포트 80에서 오류가 발생합니다.
그 이유는 사이트의 일부가 SSL이어야하지만 다른 부분은 그렇지 않기 때문입니다. 사이트에서 http + https를 모두 제공하려면 어떻게해야합니까?
여기 내 가상 호스트 파일이 있습니다 ….
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName mysite.co.uk
DocumentRoot /var/www/mysite/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mysite/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
#SSL STUFF...
SSLEngine on
SSLCertificateFile /etc/apache2/crts/mysite.crt
SSLCertificateKeyFile /etc/apache2/crts/mysite.key
SSLCertificateChainFile /etc/apache2/crts/DigiCertCA.crt
</VirtualHost>
답변
아파치가 SSL에 대해 이야기하고 어떤 것이 아닌지 알아야하기 때문에 하나의 가상 호스트 에서이 작업을 수행 할 수 없습니다 (참고 : nginx에는이 문제가 없으므로 SSL과 관련된 청취 지시문을 말할 수 있습니다). 내가 좋아하는 많은 이유 중 하나).
Apache에서이를 관리하는 방법은 SSL과 관련이없는 모든 구성을 별도의 파일에 넣은 다음 두 개의 호스트를 서로 옆에 구성하는 것입니다. 각각의 호스트는 사이트 별 구성 파일을 포함하여 vhost 스탠자 안에 있습니다. :
<VirtualHost 192.0.2.12:80>
Include /etc/apache2/sites/example.com
</VirtualHost>
<VirtualHost 192.0.2.12:443>
SSLEngine On
# etc
Include /etc/apache2/sites/example.com
</VirtualHost>
답변
Apache vHost의 문제처럼 보이지만 구성을 반복하지 않고도 작업을 수행합니다.
SSLCertificateFile /srv/.ssl/self/server.crt
SSLCertificateKeyFile /srv/.ssl/self/server.pem
# REQUIRED
<VirtualHost *:80>
DocumentRoot /srv/www/badhost
</VirtualHost>
<VirtualHost *:80 *:443>
SSLEngine On
ServerName example.com
ServerAlias www.example.com
DocumentRoot /srv/www/example.www
</VirtualHost>