Let's Encrypt - 빈 *.cer 파일

새로운 표준 30분 설치에 연결할 수 없습니다. AWS Lightsail, 2GB 메모리, Ubuntu 18.04 LTS x64이며 :443 포트가 열려 있습니다. 문제는 Let’s Encrypt의 *.cer 파일들이 비어 있다는 것입니다. 왜 그런가요?

nginx 로그

root:/var/log/nginx# ls -ltrh
-rw-r–r-- 1 www-data www-data 0 Dec 6 05:45 error.letsencrypt.log
-rw-r–r-- 1 www-data www-data 0 Dec 6 05:45 access.letsencrypt.log
-rw-r–r-- 1 www-data www-data 1.8M Dec 6 08:19 error.log

tail error.log
PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

작동하지 않는 사이트의 인증서 파일들. 0바이트 크기의 파일들을 주의하세요.

ls /shared/ssl/ -ltrh
-rw------- 1 root root 3.2K Dec 6 08:16 test.example.com.key
-rw-r–r-- 1 root root 0 Dec 6 08:16 test.example.com.cer
-rw------- 1 root root 302 Dec 6 08:16 test.example.com_ecc.key
-rw-r–r-- 1 root root 0 Dec 6 08:16 test.example.com_ecc.cer

정상적으로 작동하는 사이트의 인증서 파일들과 비교해 보세요

ls /shared/ssl/ -ltrh
-rw-r–r-- 1 root root 3.2K Nov 25 07:41 forum.working.com.key
-rw-r–r-- 1 root root 3.9K Nov 25 07:41 forum.working.com.cer
-rw------- 1 root root 302 Nov 29 00:11 forum.working.com_ecc.key
-rw-r–r-- 1 root root 3.3K Nov 29 00:11 forum.working.com_ecc.cer

재빌드, 재부팅, 그리고 app.yml의 LETSENCRYPT_ACCOUNT_EMAIL에 다른 이메일을 사용하는 것을 시도해 보았습니다.

어제 이 문제가 발생했는데, 도메인 이름이 서버로 해석되지 않는 것이 원인이라고 생각합니다(잘못된 호스트 이름을 사용했었거든요). discourse-setup에는 이를 감지해야 하는 테스트가 포함되어 있습니다.

DNS 문제를 해결한 후, /var/discourse/shared/standalone에서 ssl과 let’s encrypt 디렉터리를 삭제하세요.

@pfaffman 님, 감사합니다. 이 방법으로 해결되었습니다. 제 경우, 처음 discourse-setup을 실행할 때 DNS가 아직 설정되어 있지 않아 테스트가 실패했습니다. 그 시점에 DNS를 수정하고 "n"을 눌러 재시도했는데, 이번에는 테스트가 통과되어 빌드가 진행되었지만 인증서 파일 크기가 0바이트였습니다.

이것은 버그라고 생각하며, 시간이 나면 재현을 시도해 보겠습니다. 아마도 설정이 인증서 파일의 존재만 확인하고, 유효성이나 최소한 0바이트가 아닌지 확인하지 않는 것 같습니다.