● 시놀로지 인증서 acme.sh DNS 방식(자동갱신 X) 생성 자동 생성 안되는 문제 대응
♨ 카랜더 일정 :
2024년09월05일
본문
● 시놀로지 인증서 acme.sh DNS 방식(자동갱신 X) 생성 자동 생성 안되는 문제 대응
이전 작업 진행 정보
https://11q.kr/www/bbs/board.php?bo_table=s11&wr_id=12742
● 3개월 멀티 인증서 acme.sh 로 DNS 인증서 갱신 작업
1) txt 가 3개월간 유지 1개월 부터 변경 작업 필요
정보 출처
https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode
설치 작업 ( 초기 작업)
https://github.com/acmesh-official/acme.sh
다운로드 (github의 email로 한다)
wget -O - https://get.acme.sh | sh -s email=my@example.com
wget -O - https://get.acme.sh | sh -s email=ss1145@mail.com
업데이트 작업후 파일 변경 확인
txt 생성 (매번)후 인증서 생성 메뉴얼
- 첫 번째 단계:
acme.sh --issue -d example.com --dns \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
DNS 기록에 TXT 기록을 추가하세요. 이 단계는 주목받을 때마다 필요합니다. DNS API 모드를 사용하면 이 단계를 자동화할 수 있습니다.
이제
--renew
키보드를 입력해 다시 시작하세요.
acme.sh --renew -d example.com \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
123q.me 인증서 생성 업데이트 진행
.acme.sh 폴더로 이동
저는 cd /root/.acme.sh
dns서버에서 txt 확인 >> 하기 재생성 불가시 acme.sh 재생성후 변경 > txt 확인 작업
저의 서버는
https://app.netlify.com/teams/homepc11qkr/dns/11q.kr
또하나의 서버
https://account.squarespace.com/domains/managed/123q.me/dns/dns-settings
DNS Settings
DNS records point to services your domain uses, like forwarding your domain or setting up an email service. Learn more about DNS settings
Add Preset
Custom records
Add record
Host
Type
Priority
Data
@
A
—
221.140.111.151
_acme-challenge
TXT
—
ID6CgU7vEhl0teCFxDR24y8-RFe9FIt4PEvg9araA-U
_acme-challenge
TXT
—
OkKns-OLEGJ3uLYcJj5fRqTEvv9km6l3vWUTOn2mkp4
www
CNAME
—
123q.me
=======================
nslookup 으로 txt 확인
#ssh txt 적용 확인
#nslookup
#> set type=txt
#> _acme-challenge.123q.me
--------------
acme.sh --renew -d 123q.me -d *.123q.me \
--yes-I-know-dns-manual-mode-enough-go-ahead-please --force
txt 생성
acme.sh --issue -d 123q.me -d *.123q.me --dns \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
1차 11q.kr의 저의 대표 ddns의 인증서 적용을 완료후
2차 다른 123q,me의 ddns의 인증서 적용 테스트 진행
==================진행중지 ================================
다음 일정 9/23일 에 작업 진행 예정
1차 확인 > txt 변동 없이 인증서 재생성 진행 예정
acme.sh --renew -d 123q.me -d *.123q.me \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
안되면 2차 확인
acme.sh --renew -d 123q.me -d *.123q.me \
--yes-I-know-dns-manual-mode-enough-go-ahead-please --force
==================
안되면 txt 생성후 인증서 생성 적용 방법
==============
1) txt 생성
acme.sh --issue -d 123q.me -d *.123q.me --dns \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
2) dns서버에서 txt 변경
https://account.squarespace.com/domains/managed/123q.me/dns/dns-settings
3) 서버 txt 적용확인
nslookup
#> set type=txt
#> _acme-challenge.123q.me
4) 인증서 생성1
acme.sh --renew -d 123q.me -d *.123q.me \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
4) 인증서 생성2
acme.sh --renew -d 123q.me -d *.123q.me \
--yes-I-know-dns-manual-mode-enough-go-ahead-please --force
5) 인증서복사
6) 인증서 보안 적용확인
=====참조=========
https://chatgpt.com/c/66d97288-038c-8007-be5b-0956c0043682
acme.sh 를 이용하여 시놀로지 인증서를 생성 예정입니다, txt의 dns서버에 자동으로 동기화 방법하고 acme.sh 로 txt 변동없이 acme.sh로 지속적으로 인증서 업그레이트 방법을 알려주세요
Nginx에 Let's Encrypt SSL(https) 보안 인증서 적용하기(with certbot 인증서 자동갱신) 인증방식
인증서 생성 및 발급 의 인증 방식 정보 입니다
1. Let’s Encrypt
Let’s Encrypt는 무료 SSL/TLS 인증서를 얻고 설치할 수 있는 인증 기관으로, 웹 서버에서 암호화된 HTTPS를 사용할 수 있게 해 줍니다. 또한, Certbot이라는 자동화 클라이언트를 제공하여 Apache 및 Nginx에서 인증서를 획득하고, 설치하는 전체 프로세스가 자동화되어 있습니다.
참고로 Let’s Encrypt 인증서의 경우 유효기간은 3개월(90일)로 그 기간이 짧습니다. 가장 큰 이유로는 짧은 주기의 자동 갱신을 권장하여 인증서가 무력화되더라도 그 피해를 최소화하기 위함입니다.
2. 인증 방식
인증서는 Let’s Encrypt(인증기관, CA)로부터 인증 절차를 거쳐야 인증서 발급이 가능하며, 인증 방식에는 아래 4가지 방식이 있습니다. 본 문서에서는 3번 Standalone 방식으로 진행합니니다.
webroot 방식
실제 돌아가고 있는 웹 서버에 특정 파일 쓰기 작업을 통해 인증하는 방식입니다. 즉, 접근할 수 있는 특정 디렉터리를 제공해서 접근이 가능한지 확인하는 방식입니다.4
이를 이용하면 nginx를 중단시킬 필요가 없어진다는 장점이 존재합니다.
단, 한 번에 하나의 도메인만 발급 가능하다는 단점이 존재합니다.
웹서버(Nginx) 방식
Nginx나 아파치와 같은 웹서버에서 직접 SSL 인증을 실시하고 웹서버에 맞는 SSL세팅값을 부여
발급이나 갱신을 위해 웹서버를 중단시킬 필요가 없음
인증서 갱신 시 상황에 맞게 세팅을 자동으로 업데이트
사용자가 세팅을 변경할 수 있지만 자동 업데이트 시 반영되지는 않음
Standalone 방식
certbot에서 80 포트의 standalone webserver를 따로 띄워서 인증서를 발급받는 방식입니다.
즉, 80, 443 포트를 이미 열고 있다면 발급 시마다 nginx를 다시 내려야 한다는 단점이 존재합니다.
DNS 방식(자동갱신 X)
도메인 TXT 레코드를 이용해서 인증서를 발급받는 방식입니다.
와일드카드 방식으로 인증서 발급이 가능합니다.
단점은 인증서 갱신 시마다 DNS TXT 레코드 값을 변경해야 합니다.
때문에 DNS가 TXT 레코드를 수정할 수 있는 API를 제공해야만 갱신을 자동으로 처리 가능합니다.
===========> dns방식으로 진행 사용중에 자동갱신이 안된다
대응정보
165. Use Timeweb Cloud DNS API
https://github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_timeweb
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠
뷰PDF 1,2
office view
관련자료
-
링크
댓글목록
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
취소
보내기
ChatGPT의 말:
ChatGPT
시놀로지 NAS에서 ACME.sh를 사용해 인증서를 생성하고, DNS-01 챌린지를 통해 자동으로 DNS 서버에 TXT 레코드를 동기화하는 방법 및 인증서를 지속적으로 갱신하는 방법을 알려드리겠습니다.
1. ACME.sh 설치 및 기본 설정
먼저 ACME.sh를 설치하고 기본 설정을 해줍니다.
bash
코드 복사
curl https://get.acme.sh | sh
설치 후, 현재 세션에 acme.sh 명령어를 사용할 수 있도록 환경 변수를 추가합니다.
bash
코드 복사
source ~/.bashrc
2. DNS API 설정
ACME.sh는 다양한 DNS 서비스 제공자와 연동할 수 있도록 여러 API를 제공합니다. 사용 중인 DNS 서버에 따라 API 키를 설정해야 합니다. 아래는 대표적인 DNS 서비스 제공자의 설정 예시입니다.
Cloudflare 예시:
Cloudflare에서 API 키를 발급받습니다.
Cloudflare 대시보드 > "My Profile" > "API Tokens"에서 Global API Key 또는 Scoped API Key를 생성합니다.
ACME.sh에 API 키를 설정합니다.
bash
코드 복사
export CF_Key="your-cloudflare-global-api-key"
export CF_Email="your-cloudflare-email"
ACME.sh에 DNS 인증서 생성을 요청합니다.
bash
코드 복사
acme.sh --issue --dns dns_cf -d yourdomain.com -d www.yourdomain.com
여기서 yourdomain.com을 발급받을 도메인으로 변경합니다.
기타 DNS 제공자 설정:
다른 DNS 제공자의 경우, ACME.sh 공식 문서에서 해당 API를 확인하고 설정할 수 있습니다.
3. 인증서 자동 갱신
ACME.sh는 기본적으로 60일마다 자동으로 인증서를 갱신합니다. 인증서 갱신 시 TXT 레코드를 자동으로 업데이트하도록 설정하려면, 다음 명령어를 사용하세요.
bash
코드 복사
acme.sh --install-cert -d yourdomain.com \
--key-file /path/to/private.key \
--fullchain-file /path/to/fullchain.cer \
--reloadcmd "service nginx reload"
이 명령어는 인증서가 갱신될 때마다 지정된 경로에 인증서를 저장하고, nginx를 자동으로 재시작하는 설정입니다. nginx 대신 Synology DSM에서 사용하는 웹 서비스의 재시작 명령으로 변경할 수 있습니다.
시놀로지에서 웹 서버를 재시작하는 명령어는 다음과 같습니다.
bash
코드 복사
synowebservice --restart
따라서 위 명령어에서 --reloadcmd 옵션을 다음과 같이 변경합니다.
bash
코드 복사
--reloadcmd "synowebservice --restart"
4. 인증서 갱신 시 TXT 레코드 유지하기
ACME.sh는 기본적으로 인증서 갱신 시 자동으로 새로운 TXT 레코드를 생성하여 DNS 서버에 업데이트합니다. 이 과정은 API 연동을 통해 이루어지므로 TXT 레코드를 수동으로 관리할 필요가 없습니다.
만약 DNS 서비스 제공자가 지원하지 않거나 API를 사용할 수 없는 경우에는 수동으로 TXT 레코드를 설정해야 하므로, 이 경우 자동 갱신을 위해서는 API 사용이 필수적입니다.
요약
ACME.sh 설치 및 설정.
DNS 제공자의 API 키를 설정하고, ACME.sh에 등록.
인증서 발급 시 DNS-01 챌린지를 사용하여 자동으로 TXT 레코드 업데이트.
자동 갱신 시 NAS의 웹 서비스를 재시작하도록 설정.
이렇게 하면 시놀로지 NAS에서 ACME.sh로 지속적인 인증서 갱신과 자동 TXT 레코드 업데이트가 가능합니다.
지금까지의 대화가 도움이 되었나요?
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
dns서버에서 txt 확인 >> 하기 재생성 불가시 acme.sh 재생성후 변경 > txt 확인 작업
1) txt 생성
acme.sh --issue -d 123q.me -d *.123q.me --dns \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
acme.sh --issue -d 11q.kr -d *.11q.kr --dns \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
2) dns서버에서 txt 변경
저의 서버는
https://app.netlify.com/teams/homepc11qkr/dns/11q.kr
또하나의 서버
https://account.squarespace.com/domains/managed/123q.me/dns/dns-settings
3) 서버 txt 적용확인
nslookup
#> set type=txt
#> _acme-challenge.123q.me
_acme-challenge.11q.kr
4) 인증서 생성1
acme.sh --renew -d 123q.me -d *.123q.me \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
4) 인증서 생성2
acme.sh --renew -d 123q.me -d *.123q.me \
--yes-I-know-dns-manual-mode-enough-go-ahead-please --force
5) 인증서복사
6) 인증서 보안 적용확인
♥간단_메모글♥
-
등록일 04.15가입 인사드립니다.댓글 6
-
등록일 04.09가입인사.댓글 4
-
등록일 03.03안녕하세여댓글 1
-
등록일 02.13
최근글
-
등록일 20:38
새댓글
-
등록자 dusrhwl 등록일 21:36
-
등록자 11qkr 등록일 19:41
-
등록자 유나아빠 등록일 13:14
-
등록자 닉넴짓기어려워 등록일 11.22
-
등록자 글자사랑 등록일 11.22
오늘의 홈 현황
QR코드
☞ QR코드 스캔은 kakao앱 자체 QR코드