콘텐츠로 건너뛰기

Bitnami: bncert-tool 오류 해결

[AWS Lightsail] bncert-tool 오류 해결 – Bitnami 워드프레스 SSL 인증서 수동 적용 가이드 (Lego 사용법)

AWS Lightsail에서 Bitnami 워드프레스를 운영하다 보면 가장 먼저 마주치는 난관이 바로 SSL(HTTPS) 인증서 적용이다.

많은 블로그(나 포함)에서 공식 도구인 sudo /opt/bitnami/bncert-tool을 추천하지만, 간혹 서버 내부 스크립트가 꼬여 아래와 같은 황당한 에러를 뱉으며 실행이 안 될 때가 있다.

Warning: The web server configuration check failed. Please fix the configuration error: /bin/sh: 1: /opt/bitnami/apache/sbin/nginx: not found

분명 나는 Apache(아파치) 기반의 워드프레스를 설치했는데, 도구가 엉뚱하게 Nginx 경로를 찾으며 뻗어버리는 버그이다.

오늘은 이 골치 아픈 bncert-tool 오류를 우회하여, 비트나미에 내장된 경량 클라이언트 Lego를 통해 단 4단계 만에 SSL 인증서를 확실하게 수동 적용하는 방법을 알아보자. (나를 오랜 시간 괴롭힌 숙원사업)

4단계 만에 끝내는 SSL 수동 적용법

AWS Lightsail 콘솔에서 SSH 터미널을 열고, 아래 명령어들을 순서대로 복사·붙여넣기만 하면 된다.

(주의: 명령어 중 yourdomain.com은 본인의 실제 도메인으로, your-email@gmail.com은 본인 이메일 주소로 수정 후 입력해야 한다)

1단계: 웹 서버 임시 중지

인증서를 발급받는 동안 80, 443 포트 충돌을 방지하기 위해 아파치 서버를 잠시 종료한.

sudo /opt/bitnami/ctlscript.sh stop

2단계: 내장 도구(Lego)로 인증서 발급

비트나미에 기본으로 내장된 lego 명령어를 이용해 Let’s Encrypt 인증서를 강제로 발급받는다.

sudo /opt/bitnami/letsencrypt/lego --tls --email="your-email@gmail.com" --domains="yourdomain.com" --domains="www.yourdomain.com" --path="/opt/bitnami/letsencrypt" run

Tip: 실행 중에 약관 동의(Agreement) 질문이 나오면 Y를 입력하고 엔터를 누르면 된다. 완료되면 /opt/bitnami/letsencrypt/certificates/ 경로에 실제 인증서 파일이 생성된다.

3단계: 아파치 서버에 인증서 경로 강제 연결 (심볼릭 링크)

bncert-tool이 실패했던 원인을 물리적으로 해결하는 핵심 단계이다.
기존에 꼬여있던 가짜(Dummy) 인증서 연결선을 끊고, 방금 발급받은 따끈따끈한 새 인증서 파일로 정확하게 연결(Symbolic Link)해준다.

# 1. 기존 더미 파일 및 잘못 연결된 링크 삭제
sudo rm -f /opt/bitnami/apache/conf/bitnami/certs/server.crt
sudo rm -f /opt/bitnami/apache/conf/bitnami/certs/server.key

# 2. 발급받은 새 인증서 파일로 아파치 경로에 강제 연결
sudo ln -sf /opt/bitnami/letsencrypt/certificates/yourdomain.com.crt /opt/bitnami/apache/conf/bitnami/certs/server.crt
sudo ln -sf /opt/bitnami/letsencrypt/certificates/yourdomain.com.key /opt/bitnami/apache/conf/bitnami/certs/server.key

4단계: 웹 서버 시작

인증서 매핑이 끝났으니 아파치 서버를 다시 켠다.

sudo /opt/bitnami/ctlscript.sh start

이제 블로그 주소창을 새로고침해 보면, ‘안전하지 않음’ 경고가 사라지고 자물쇠 아이콘(HTTPS)이 정상적으로 활성화된 것을 볼 수 있다.

3개월마다 자동으로 인증서 갱신하기 (Crontab)

Let’s Encrypt 무료 인증서는 90일마다 만료되므로 주기적으로 갱신해 주어야 한다.
매번 터미널을 열기 귀찮으니, 리눅스 스케줄러인 crontab을 활용해 자동 갱신되도록 세팅해 주자.

  1. 터미널에 아래 명령어를 입력하여 크론탭 에디터를 연다.
    Bashsudo crontab -e
    (처음 실행 시 에디터를 선택하라고 나오면 가장 무난한 nano 번호를 선택하자.)
  2. 파일 맨 아래에 다음 문장을 그대로 한 줄로 추가한다.
    0 0 1 * * /opt/bitnami/letsencrypt/lego --tls --email="your-email@gmail.com" --domains="yourdomain.com" --domains="www.yourdomain.com" --path="/opt/bitnami/letsencrypt" renew --days 90 && sudo /opt/bitnami/ctlscript.sh restart
    (매달 1일 정각에 만료 기간을 체크하여 조건이 충족되면 자동으로 인증서를 갱신하고 아파치를 재시작하라는 스케줄러이다.)
  3. 저장하고 나온다. (nano 에디터 기준: Ctrl + O 후 엔터, Ctrl + X로 빠져나오기)

결론

자동화 도구인 bncert-tool이 편하긴 하지만, 내부 스크립트 에러가 날 때는 이처럼 수동으로 “인증서만 따로 받고 경로를 직접 제어하는 방식”이 가장 확실하고 직관적인 해결책이 된다.

동일한 에러로 블로그 접속이 안 되어 밤새 삽질하고 계셨을 분들에게 도움이 되었기를 바란다!

0 글이 마음에 드시면 하트를 눌러주세요! 행복한 고민이 됩니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다