2개의 공용 IPv4 주소를 사용하여 ISP에서 호스팅되는 가상 서버가 있습니다. Apache로 여러 하위 도메인(2개 이상)을 실행하고 HTTP와 HTTPS를 통해 서비스를 제공하고 싶습니다. SSL 인증서는 *.mydomain.com에 대한 와일드카드 인증서입니다.
Debian에서 Apache를 이런 식으로 구성하려고 시도했지만 실패했습니다. 내 가상 호스트가 허용되지 않거나 SSL 오류가 발생합니다. (아파치는 인증서를 제공하기 전에 요청된 호스트 이름을 볼 수 없지만 인증서에는 가능한 모든 하위 도메인이 포함되어 있음을 알고 있습니다.)
데비안의 Apache 구성 레이아웃에 가장 잘 작동하는 httpd.conf를 만드는 데 도움을 주세요.
모든 세부정보:
- HTTP의 경우 *:80, HTTPS의 경우 *:443을 수신하는 Apache
- 모든 NameVirtualHosts, 별칭 등은 두 포트/프로토콜에 대해 동시에 정의되어야 합니다.
- 기본 mydomain.com 및 www.mydomain.com은 /var/www에 루트되어야 합니다.
- 특별히 구성할 수 있는 foo.mydomain.com 및 bar.mydomain.com 등에 대한 추가 NameVirtualHosts(예: 다른 DocumentRoot를 갖도록 함)
답변1
아파치~할 수 있다다음을 사용하여 요청된 호스트 이름을 확인하세요.TLS 서버 이름 표시.
그러나 이를 위해서는 비교적 최신의 웹 브라우저가 필요합니다. 예를 들어, Windows XP에서 Internet Explorer를 사용하는 사용자는 추가 도메인에 대한 인증서 불일치 메시지를 받게 됩니다. (다행히 WinXP/IE 사용자는 거의 멸종되었습니다.)위키피디아 기사목록이 있고여기 테스트 페이지가 있어요확실하지 않다면.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/private/example.com.pem
</VirtualHost>
추가 (하위)도메인:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /sites/foo
</VirtualHost>
<VirtualHost *:443>
ServerName foo.example.com
DocumentRoot /sites/foo
SSLEngine on
SSLCertificateFile /etc/ssl/private/foo.example.com.pem
</VirtualHost>