저는 Apache VirtualHost를 사용하여 단일 IP 주소에서 2500개의 공개 도메인(예: www.example.com, example.com, www.example.net 및 example.net)을 실행하고 있습니다.
이 모든 도메인에 대해 LetsEncrypt를 설정하고 싶습니다. 권장되는 접근 방식은 무엇입니까? 이를 수행할 수 있는 자동화된 도구가 있습니까?
해결책은 다음과 같아야 합니다.
- 작동하는 것으로 입증됨(추측 아님)
- 충분히
- 단일 IP에서 작동
내 섹션의 활성 부분은 <VirtualHost>
다음과 같습니다.
<VirtualHost *:80>
# www.sub.example.com -> sub.example.com/html/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(www\.)?(.*)
RewriteRule ^/(.*)$ /home/hotels/%2/html/$1
</VirtualHost>
답변1
먼저, 단일 IP 주소에서 여러 SSL 인증서를 지원하려면 Apache v2.2.12
나중에 SNI를 사용해야 합니다. OpenSSL v0.9.8j
계속하기 전에 서버를 확인하고 Apache 웹 서버 버전을 확인하세요. 귀하의 컴퓨터가 이 버전 이상을 지원하지 않는 경우 업그레이드해야 합니다.
Digicert에는 훌륭한 기사가 있습니다.Apache에서 하나의 IP 주소로 여러 SSL 인증서 사용
앞서 언급한 것처럼 도메인마다 별도의 가상 호스트를 만들어야 합니다. 각 가상 호스트에는 자체 SSL 인증서 구성이 있습니다.암호화하자와일드카드 또는 다중 서버 사양을 사용하여 도메인당 하나의 SSL 인증서를 생성할 수 있습니다.certbot
Digital Ocean에 기사가 있습니다.Let's Encrypt 인증서를 설정하는 방법certbot
여기에는 Ubuntu에서의 설치 도 포함됩니다 . 서버가 Ubuntu가 아닌 경우certbot의 설치 지침. 또한 다음이 필요할 수 있습니다.문서를 암호화하자
다음 지침에 따라 certbot을 사용하여 각 도메인에 대한 SSL 인증서를 생성할 수 있습니다.
certbot --apache -d example.com -d www.example.com
certbot --apache -d example.net -d www.example.net
각 명령은 서로 다른 도메인에 적용되지만 각 도메인은 여러 호스트 이름을 가질 수 있습니다.
Apache 구성에서 각 도메인에 대한 가상 호스트를 만듭니다.
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/site
SSLEngine on
SSLCertificateFile /path/to/www_example_com.crt
SSLCertificateKeyFile /path/to/www_example_com.key
SSLCertificateChainFile /path/to/LetsEncrypt.ca
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.net
ServerAlias example.net
DocumentRoot /var/www/site2
SSLEngine on
SSLCertificateFile /path/to/www_example_net.crt
SSLCertificateKeyFile /path/to/www_example_net.key
SSLCertificateChainFile /path/to/LetsEncrypt.ca
</VirtualHost>
받은 인증서 유형과 Apache 버전에 따라 <VirtualHost 192.168.1.3:443>
대신 실제 IP 주소를 지정해야 할 수도 있습니다.<VirtualHost *:443>
<VirtualHost *:80>
SSL이 아닌 인바운드 트래픽을 지원하려면 포트 80 가상 호스트를 그대로 유지하십시오 . SSL을 지원하려면 최대 2500개의 가상 호스트를 생성해야 합니다. 커밋하기 전에 하나 또는 두 개를 테스트하십시오.
Apache SSL 모듈을 활성화하는 것을 잊지 마십시오
a2enmod ssl
답변2
2,500명의 <VirtualHost>
시선을 유지하지 마십시오https://github.com/varnish/hitch/blob/master/docs/vhosts.md
인증서를 다음 위치에 넣으세요 /home/hotels/*/certs/
.
./hitch --backend=localhost:80 \
--frontend=[*]:443 \
/home/hotels/*/certs/*.pem
(검증되지 않은).