Failed to renew certificate [도메인1] with error: The manual plugin is not working; there may be problems with your existing configuration. The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',) Challenge failed for domain [도메인2] Failed to renew certificate [도메인3] with error: Some challenges have failed. All renewals failed. The following certificates could not be renewed: /etc/letsencrypt/live/[도메인1]/fullchain.pem (failure) /etc/letsencrypt/live/[도메인3]/fullchain.pem (failure) 2 renew failure(s), 0 parse failure(s) |
해당 메시지로 아무리 검색을 해 봐도 원인을 알 수가 없었다. 검색을 통해 나오는 결과들은 DNS 서버나 자동 갱신 오류들만 확인해 보라고 했다. 사실, 그들이 내 놓은 답변이 맞다. 기본적으로 서버 내에서 제대로 설정을 했으면, 저런 메시지들은 서버 외에서 발생하는 거라 서버 DNS나 자동 갱신 시 명령어 오류만 확인하면 된다. 그렇다. 위와 같이 인증서 오류가 나면 가장 먼저 서버 내부에 설정이 제대로인지 확인을 해야 한다.
1. 문제가 발생한 도메인을 브라우저 창에 띄워 보시라. 위 예제에서 [도메인2]와 [도메인3]이 해당된다. 저런 오류를 내는 도메인들이 무슨 문제가 있을까? 해당 도메인을 입력하면 브라우저에서 "접근 권한이 없다"고 나온다. 무슨 소린가? 서버 내의 httpd.conf 에서 "폴더 설정" 자체가 잘못되었으니 접근 권한이 없다고 나올 수 밖에.
2. httpd.conf 를 수정했는데도 저 메시지가 나온다? 그렇다면 letsencrypt 폴더를 가자.
/etc/letsencrypt/renewal
Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/[도메인]/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/[도메인]/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/[도메인]/chain.pem |
아파치 설정 파일에 대체로 위와 같이 넣어 놓는데, letsencrypt 설정 파일이 있는 renewal 폴더에 가면
[도메인].conf
파일이 있다. 이 파일에 가서 해당 도메인의 webroot를 확실히 설정해 주면 된다.
[[webroot_map]] [도메인1] = [폴더] [도메인2] = [폴더] |
도메인1과 도메인2가 같은 인증서를 쓴다면, 저 [폴더]도 같은 폴더를 써 줘야 한다.
3. 1과 2만 해도 거의 95% 이상 해결이 된다. 나머지 5%는 varnish 같은 것을 썼을 경우이다. 이 경우에는
/etc/varnish
폴더로 가서 default.vcl 파일 설정을 변경해야 한다. 이 경우는 잘 없으니 패쓰.
이상입니다.