동일한 IP 및 폴더에 대한 Apache 다중 도메인 및 다중 SSL

동일한 IP 및 폴더에 대한 Apache 다중 도메인 및 다중 SSL

여러 도메인이 있는 사이트에 대해 동일한 IP와 동일한 폴더를 사용하고 각 도메인마다 별도의 SSL 인증서를 사용해야 하는 시스템을 구축 중입니다. 또한 사이트가 자체적으로 다른 도메인을 처리할 수 있으므로 리디렉션이나 전달을 원하지 않습니다.

매우 좋아하다

site1.example.com 192.168.0.2:443 /var/www/html

site2.example.com 192.168.0.2:443 /var/www/html

site3.example.com 192.168.0.2:443 /var/www/html

site4.example.com 192.168.0.2:443 /var/www/html

hosts저는 Ubuntu 14.04와 Apache2를 사용하고 있는데 파일을 어떻게 찾아야 하는지 잘 모르겠습니다 . 누구든지 예를 들어주실 수 있나요?

답변1

이전에는 단일 IP 주소에서 호스팅되는 여러 사이트에서 여러 SSL 인증서를 사용하는 것이 어려웠습니다. 왜냐하면 이 웹사이트 관리자는 별도의 IP 주소를 구입하려면 더 많은 비용을 투자해야 하기 때문입니다. 그러나 이제 SNI(서버 이름 표시기)의 도움으로 Apache의 단일 인터넷 프로토콜에서 서로 다른 SSL 인증서를 사용하여 여러 사이트를 보호할 수 있습니다.

Apache를 사용하여 SNI를 설정합니다.

먼저 .conf를 새로 백업하세요.

이제 위 기능을 구현하려면 서버에 가상 호스트를 만들어야 합니다. 새 가상 호스트에 대한 새 .conf 파일을 생성하거나 기존 파일을 사용할 수 있습니다. 새 .conf 파일을 생성하는 경우 기존 .conf 파일에 다음 줄을 추가해야 합니다.

Include my_other_site.conf

이제 포트 *:443을 사용하여 NameVirtualHost 지시문에 공용 IP 주소를 나열하세요. 그런 다음 루트 인증서, 중간 인증서 및 SSL 파일이 각 웹 사이트를 가리키도록 해야 합니다. 자세한 내용은 아래 예를 확인하세요.

NameVirtualHost *:443

<VirtualHost *:443>
 ServerName site1.domain.com 
 DocumentRoot /var/www/site
 SSLEngine on
 SSLCertificateFile /path/to/site1_domain_com.crt
 SSLCertificateKeyFile /path/to/site1_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

<VirtualHost *:443>
 ServerName site2.domain.com
 DocumentRoot /var/www/site2
 SSLEngine on
 SSLCertificateFile /path/to/site2_domain_com.crt
 SSLCertificateKeyFile /path/to/site2_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

이것은 잘 작동할 것입니다. 그러나 제 생각에는 단일 SAN(주체 대체 이름) SSL을 얻을 수 있지만 단일 인증서로 여러 사이트를 보호할 수 있으므로 여러 사이트에 대해 서로 다른 SSL 인증서를 사용해서는 안 됩니다. 보호해야 하는 하나의 도메인 아래에 하위 도메인만 있는 경우 비용 효율적인 옵션인 와일드카드 SSL을 선택하면 됩니다. 와일드카드 인증서를 발급하기만 하면 *.domain.com별표(*)가 있는 모든 항목(첫 번째 수준만)을 덮어쓰게 됩니다.

와일드카드 SSL과 SAN 인증서 모두 비용과 관리상의 어려움을 줄여줍니다. 읽다이 기사와일드카드 SSL과 SAN의 차이점을 알고 싶다면.

답변2

DocumentRootGunjan Tripathi의 답변에 따라 모든 도메인이 동일한 데이터 디렉터리를 사용하도록 하면 동일한 디렉터리로 설정됩니다 .

<VirtualHost *:443>
 ServerName site1.domain.com 
 DocumentRoot /var/www/html
 SSLEngine on
 SSLCertificateFile /path/to/site1_domain_com.crt
 SSLCertificateKeyFile /path/to/site1_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

<VirtualHost *:443>
 ServerName site2.domain.com
 DocumentRoot /var/www/html
 SSLEngine on
 SSLCertificateFile /path/to/site2_domain_com.crt
 SSLCertificateKeyFile /path/to/site2_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

관련 정보