SSL 인증서 관련 재설정을 시도하고 있으며, Let’s Encrypt 무료 인증서를 비활성화하려고 합니다.
구매한 인증서가 있기 때문에 Google을 통해 몇 가지 작업을 찾았습니다.
app.yml을 직접 수정하고 /var/discourse/shared/standalone/ssl/ 디렉터리에서 키 및 인증서 파일을 확인했으며, 파일명이 설정 파일과 일치하는지 확인한 후 rebuild를 실행했는데, 여전히 Let’s Encrypt 인증서가 사용되는 상태로 실패했습니다.
nginx에 다음과 같은 오류 로그가 있습니다:
2021/09/25 16:37:26 [emerg] 48#48: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:27 [emerg] 78#78: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:28 [emerg] 80#80: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:29 [emerg] 82#82: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:30 [emerg] 95#95: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:31 [emerg] 104#104: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:32 [emerg] 106#106: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
root@discourse-test:/var/discourse/shared/standalone/ssl# ls -al ssl.*
경로의 /shared/ 이후 부분에 차이가 있음을 주목해 보세요. Nginx는 ssl.crt 파일이 shared/ssl/ 폴더에 있을 것으로 예상하고 있었습니다. 그런데 해당 파일은 shared/standalone/ 폴더에서 발견되었습니다. 즉, 파일이 nginx가 찾는 경로에 존재하지 않았던 것입니다.
위 설정은 겉보기에는 일치하지 않는 것처럼 보이지만, 실제로는 동일한 것을 가리킵니다.
첫 번째 문제는 해결되었습니다.
제 경우의 근본 원인은 인증서 형식을 인지하지 못했던 것입니다.
설정에서는 crt 형식을 지정하고 있었지만, 저는 항상 cer 형식 파일을 사용했기 때문에 nginx가 인증서 파일을 읽는 데 실패했습니다.