★★★ 무료ssl 인증서 시놀로지작업_재설치 검증성공 ) 무료ssl 인증서 자동생성 Nginx Proxy Manager 시놀로지 도커에 설치 작업 2nd ssl인증서 적용
컨텐츠 정보
- 14,071 조회
- 6 댓글
- 0 추천
- 목록
본문
★★★ 무료ssl 인증서 시놀로지작업_재설치 검증성공 ) 무료ssl 인증서 자동생성 Nginx Proxy Manager 시놀로지 도커에 설치 작업 2nd ssl인증서 적용
● HA작업_시놀로지작업) HAOS 의 NPM으로 서브 인증서 생성 시놀로지 2개의 서브도메인 https:// 적용하기 (주의요함 제거 하기)
https://11q.kr/www/bbs/board.php?bo_table=co3&wr_id=779
성공하여 시놀로지 서버로 1차 ssl 생성 성공 재설치 합니다
주요 에러 대응 요약
1) 디랙토리구성 을 초기 주어야 인증서 복사 가능
mkdir -p /volume1/docker/npm/data
mkdir -p /volume1/docker/npm/etc/letsencrypt
chmod 760 -R /volume1/docker/npm
2) 시놀로지 npm 설치 포트 및 공유기 정보 참조
NPM을 설정할 때 다소 비슷한 문제가 있었습니다.
호스트에 포트 80 및 443을 포트 포워딩했는지 확인하고 DNS가 올바르게 설정되었는지 확인하세요.
시놀로지의 경우 443 포트를 dsm에서 점유하고있기때문에 타 포트를 적어주시고 포트포워딩을 해당포트로해주시면됩니다.
ex) 8080:80, 8443:443으로 매핑하고 포트포워딩시 공유기의 80을 8080으로 443은 8443으로요
3) 에러 발생시 종료 하지 않고 다음 명령을 주고 재save하여 ssl인증서 생성
도커 접속
ERROR:certbot._internal.log:Some challenges have failed.
을 해결 합니다.
docker exec -it npm bash
들어가서
python3 -m pip install certbot_dns_duckdns
4) 작업 스케쥴러로 보조 인증서 복사 합니다
cp /volume1/docker/npm/etc/letsencrypt/live/npm-2/*.* /usr/syno/etc/certificate/_archive/1ehwGc/
=================== 작업 내용 ======
이미지 다운로드받기.
jc21 nginx-proxy-manager 검색 다운로드합니다
저는 검색 다운로드 진행
다운로드 완료한 이미지로 실행
디랙토리구성
mkdir -p /volume1/docker/npm/data
mkdir -p /volume1/docker/npm/etc/letsencrypt
chmod 760 -R /volume1/docker/npm
시놀로지 npm 설치정보 참조
NPM을 설정할 때 다소 비슷한 문제가 있었습니다.
호스트에 포트 80 및 443을 포트 포워딩했는지 확인하고
DNS가 올바르게 설정되었는지 확인하세요.
전문가는 아니지만 조금이나마 도움이 되었으면 합니다
시놀로지의 경우 443 포트를 dsm에서 점유하고있기때문에 타 포트를 적어주시고 포트포워딩을 해당포트로해주시면됩니다.
ex) 8080:80, 8443:443으로 매핑하고 포트포워딩시 공유기의 80을 8080으로 443은 8443으로요
공유기구성
npm 구성
포트구성
디랙토리 구성이 중요 > 나중에 인증서 연결이 가능 합니다
-주) 인증서 폴더 연결은 초기 볼륨연결이 진행이 되어 있는 상황에 컨테이너를 생성 합니다
===> 컨테이너를 생성 이후 볼륨 연결은 되지 않습니다
현상태 진행
## first setting
81 포트로 실행 합니다
#Email:
admin@example.com
#Password:
changeme
changeme
ssl로 진입
*.11q.duckdns.org
11q.duckdns.org
5cbc776d-35db-4f4f-b4d9-eb47be3316e1
주) 종료 하지말고 내용 확인
====================
Error: Command failed: certbot certonly --config "/etc/letsencrypt.ini" --work-dir "/tmp/letsencrypt-lib" --logs-dir "/tmp/letsencrypt-log" --cert-name "npm-1" --agree-tos --email "ss1145@kakao.com" --domains "*.11q.duckdns.org,11q.duckdns.org" --authenticator dns-duckdns --dns-duckdns-credentials "/etc/letsencrypt/credentials/credentials-1"
Saving debug log to /tmp/letsencrypt-log/letsencrypt.log
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /tmp/letsencrypt-log/letsencrypt.log or re-run Certbot with -v for more details.
at ChildProcess.exithandler (node:child_process:402:12)
at ChildProcess.emit (node:events:513:28)
at maybeClose (node:internal/child_process:1100:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
----------------------
cat /tmp/letsencrypt-log/letsencrypt.log
,,,
File "/opt/certbot/lib/python3.7/site-packages/certbot/_internal/auth_handler.py", line 212, in _poll_authorizations
raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.
2023-04-30 05:33:17,093:ERROR:certbot._internal.log:Some challenges have failed.
======문제후 진행 내용 =======
https://svrforum.com/docker/730947
정보 댓글 확인 duckdns에 대한 진행 합니다.
도커 접속
ERROR:certbot._internal.log:Some challenges have failed.
을 해결 합니다.
docker exec -it npm bash
python3 -m pip install certbot_dns_duckdns
재save
다시 저장후 ssl인증서 생성 성공 했습니다
=======================
인증서는 어디로 저장 되나
[root@docker-npm:/]# find / -name *.pem
/etc/letsencrypt/live/npm-2/cert.pem
/etc/letsencrypt/live/npm-2/fullchain.pem
/etc/letsencrypt/live/npm-2/chain.pem
/etc/letsencrypt/live/npm-2/privkey.pem
/etc/letsencrypt/archive/npm-2/chain1.pem
/etc/letsencrypt/archive/npm-2/cert1.pem
/etc/letsencrypt/archive/npm-2/fullchain1.pem
/etc/letsencrypt/archive/npm-2/privkey1.pem
주) 설치시 볼륨지정을 해주어야 초기 생성이 파일스테이션에서 보입니다
내 인증서는 어디에 있습니까?¶
/volume1/docker/npm/etc/letsencrypt/archive/npm-2/chain1.pem
/volume1/docker/npm/etc/letsencrypt/archive/npm-2/fullchain1.pem
/volume1/docker/npm/etc/letsencrypt/archive/npm-2/privkey1.pem
작업 스케줄러에 복사
cp /volume1/docker/npm/etc/letsencrypt/live/npm-2/cert.pem /usr/syno/etc/certificate/_archive/1ehwGc/cert.pem
cp /volume1/docker/npm/etc/letsencrypt/live/npm-2/fullchain.pem /usr/syno/etc/certificate/_archive/1ehwGc/fullchain.pem
cp /volume1/docker/npm/etc/letsencrypt/live/npm-2/privkey.pem /usr/syno/etc/certificate/_archive/1ehwGc/privkey.pem
cp /volume1/docker/npm/etc/letsencrypt/live/npm-2/chain.pem /usr/syno/etc/certificate/_archive/1ehwGc/chain.pem
로 복사 사용해야 합니다.
mount /volume1/docker/npm/etc/letsencrypt/live/npm-2 /usr/syno/etc/certificate/_archive/1ehwGc
마운트가 안되네요 ????
복사로 테스트 성공 cp로 작업 스케쥴러에 root관리자로 등록 합니다.
cp /volume1/docker/npm/etc/letsencrypt/live/npm-2/*.* /usr/syno/etc/certificate/_archive/npm/
변경 성공
작업 스케쥴러 적용
cp /volume1/docker/npm/etc/letsencrypt/live/npm-2/*.* /usr/syno/etc/certificate/_archive/1ehwGc/
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠관련자료
11qkr님의 댓글
Nginx Proxy Manager(NPM)을 도커로 설치해서 사용하시는 분은
적절한 디렉토리에 ssl-renew.sh 만드신후 (nano ssl-renew.sh)
docker exec -i npm certbot renew && docker restart npm
여기서 npm은 nginx proxy manager 컨테이너 이름입니다.
스크립 입력후 저장해 주시고...
chmod +x ssl-renew.sh 명령어로 실행권한 주시고
crontab에 실행 원하시는 기간 설정해서 등록해 주시면 됩니다.
이렇게 하면 NPM에 등록된 SSL 만료 기간에 따라 자동 갱신합니다.
===================> 작업 안해도 됨 자동 갱신 됨
11qkr님의 댓글
https://github.com/acmesh-official/acme.sh
만들기 정보 영상
https://www.youtube.com/watch?v=kwehfuMCRq8