php
cPanel에서 Let's Encrypt SSL을 설치 및 자동 갱신하는 방법
이 가이드는 Let's Encrypt 인증서 자동 갱신을 설정하기 위해 cPanel 계정과 함께 acme.sh를 사용하는 방법을 설명합니다.
cPanel 계정에 대한 SSH 액세스가 필요합니다. 이것이 가능한지 알아보려면 호스팅 관리자에게 문의해야 합니다.
아래 예제 명령에서 다음과 같이 대체합니다.
변 수 | 설 명 | Ex) |
---|---|---|
_EXAMPLE.COM_ | SSL 인증서 설치를 원하는 도메인 이름. | example.com |
_CPANEL_USERNAME_ | cPanel에 로그인하는 데 사용하는 사용자 이름. | user123 |
_SSH_PORT_ | SSH에 연결하는 데 사용하는 포트 번호. | 22 |
_SSH_ADDRESS_ | SSH에 연결하는 데 사용하는 서버 주소. | cpanel-123.example-host.com |
1. cPanel에서 acme.sh를 설정합니다.
SSH를 통해 cPanel 계정에 로그인합니다.
다음 명령을 사용하여 acme.sh 유틸리티를 설치합니다.
이메일로 Let's Encrypt 계정을 등록하면 갱신 문제에 대한 알림을 받을 수 있습니다.
그리고 acme.sh가 자동 갱신을 위한 cron 작업을 설정했는지 확인합니다.
이 도메인에 별칭/선점 도메인이 있는 경우 다음과 -d같은 매개변수가 있는 도메인을 포함 하세요. 기본적으로 example.com 과 www.example.com 을 한 번에 등록할 수 있습니다.
이 단계가 성공했는지는 오류가 발생한 경우 웹 루트가 올바른지 확인합니다.
이것은 스테이징 환경의 테스트 인증서가 아닌 신뢰할 수 있는 실제 SSL 인증서로 인증서를 재발급 합니다.
그러면 성공 메시지가 표시됩니다.
이제 브라우저에서 도메인을 방문하여 Let's Encrypt 인증서로 보호되고 있음을 확인할 수 있습니다.
ssh -l _CPANEL_USERNAME_ -p _SSH_PORT_ _SSH_ADDRESS_
source ~/.bashrc
acme.sh --register-account --accountemail email@example.com
crontab -l | grep acme.sh
# 위의 명령이 아래와 같이 출력되어야 합니다.:
10 0 * * * "/home/_CPANEL_USERNAME_/.acme.sh"/acme.sh --cron --home "/home/_CPANEL_USERNAME_/.acme.sh" > /dev/null
2. 도메인에 대한 테스트 인증서 발급.
도메인의 문서 루트를 입력해야 하는 웹 루트 방법을 사용 합니다. 기본 도메인의 웹 루트는 ~/public_html이지만 애드온 도메인과 하위 도메인은 다른 디렉토리에 있습니다. 예를 들어 웹 루트의 하위 도메인 이름이 blog.habonyphp.com 일 수 있습니다.
지금 테스트 인증서를 발급하려면 아래 명령어를 사용합니다.
acme.sh --issue --webroot ~/public_html -d _EXAMPLE.COM_ --staging
acme.sh --issue --webroot ~/public_html -d example.com -d www.example.com --staging
3. 도메인에 대한 실제 인증서 발급.
다음으로 --staging 대신 --force를 사용하여 테스트 인증서와 동일한 매개변수를 사용합니다.
acme.sh --issue --webroot ~/public_html -d _EXAMPLE.COM_ --force
4. cPanel 계정에 인증서를 설치합니다.
실제 인증서를 발급한 후 acme.sh에 도메인에 설치하는 방법을 알려야 갱신할 때마다 해당 작업을 자동으로 수행할 수 있습니다.
acme.sh --deploy --deploy-hook cpanel_uapi --domain _EXAMPLE.COM_
[Tue Aug 6 03:56:25 EDT 2019] Certificate successfully deployed
[Tue Aug 6 03:56:25 EDT 2019] Success
이것은 cPanel 계정의 단일 가상 호스트에만 배포됩니다. 다른 애드온 및 하위 도메인의 경우 별도의 인증서를 위 방법으로 생성해야 합니다.
5. 도메인의 HTTP를 HTTPS로 리디렉션(선택 사항).
안전하지 않은 HTTP 트래픽을 HTTPS로 자동 리디렉션하려면 cPanel에서 강제 HTTPS 리디렉션 하도록 설정해야 합니다. 예를 들면 .htaccess 파일에 아래 코드를 추가해서 리디렉션하도록 설정합니다.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
출처: https://github.com/acmesh-official/acme.sh/wiki/Simple-guide-to-add-TLS-cert-to-cpanel
0 댓글