대규모 가상 호스팅에 Let crypt를 사용하는 방법은 무엇입니까?

대규모 가상 호스팅에 Let crypt를 사용하는 방법은 무엇입니까?

저는 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

(검증되지 않은).

관련 정보