● [시놀로지작업]acme.sh를 이용한 ECDSA Wildcard SSL 인증서 발급받는 방법2
컨텐츠 정보
- 6,872 조회
- 0 추천
- 목록
본문
● [시놀로지작업]acme.sh를 이용한 ECDSA Wildcard SSL 인증서 발급받는 방법2
설치방법
https://11q.kr/www/bbs/board.php?bo_table=s11&wr_id=12058&&#c_12402
https://www.wsgvet.com/home/591
(아래 동작 실패)
기본 root 계정으로 시작
sudo su
다운위치 이동
cd /var/services/homes/shimss
systemctl 동작 확인
디랙토리 생성
mkdir -p ECDSA_Wildcard_SSL
cd ECDSA_Wildcard_SSL
1. acme.sh 설치하기
sudo su
위 명령어로 root 계정으로 들어갑니다.
root 계정이 아니면 권한 문제가 생길 수 있습니다. 공식 매뉴얼에는 sudo 명령어를 추천하지 않습니다.
다운로드
curl https://get.acme.sh | sh
위 명령어로 설치할 수 있습니다. 만약에 안된다면
또는
wget -O - https://get.acme.sh | sh
위 명령어로도 설치할 수 있습니다.
위와 같이 설치가 않 됩니다.
https://github.com/acmesh-official/acme.sh
https://github.com/acmesh-official/get.acme.sh
curl https://get.acme.sh | sh -s email=my@example.com
curl https://get.acme.sh | sh -s email=ss1145@gmail.com
acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf
acme.sh --issue -d 11q.kr -d '*.11q.kr' --dns dns_cf
SSH 터미널(Putty 등)을 끄고, 다시 접속합니다.
SSH에 다시 접속하면 별다른 작업을 하지 않아도 root 계정으로 acme.sh 명령어를 바로 쓸 수 있습니다.
2. 클라우드플레어 API key 찾고 입력하기
api key /그로벌
1b3080cfb9018e3eb49425be115a50bc23253
checking =============================
https://dash.cloudflare.com/profile/api-tokens
==========
export CF_Key="1b3080cfb9018e3eb49425be115a50bc23253"
export CF_Email="ss1145@gmail.com"
3. 인증서 발급받기
mkdir /etc/nginx/ssl
acme.sh --issue --dns dns_cf -d wsgvet.com -d '*.wsgvet.com' --keylength ec-384 --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --cert-file /etc/nginx/ssl/chain.pem --reloadcmd "systemctl reload nginx.service"
============= change ===================================>>>>
acme.sh --issue --dns dns_cf -d 11q.kr -d '*.11q.kr' --keylength ec-384 --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --cert-file /etc/nginx/ssl/chain.pem --reloadcmd "systemctl reload nginx.service"
참고로 RSA 인증서 발급도 가능합니다.
acme.sh --issue --dns dns_cf -d wsgvet.com -d '*.wsgvet.com' --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --cert-file /etc/nginx/ssl/chain.pem --reloadcmd "systemctl reload nginx.service"
============= change ===================================>>>>
acme.sh --issue --dns dns_cf -d 11q.kr -d '*.11q.kr' --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --cert-file /etc/nginx/ssl/chain.pem --reloadcmd "systemctl reload nginx.service"
4. .cf, .ga, .gq, .ml .tk 무료 인증서에서 ECDSA SSL 인증서 발급 받고 자동 갱신하기
위와 같은 도메인을 사용한다면 와일드카드 SSL 인증서 받기는 어렵습니다.
무료 도메인을 사용하지만 와일드카드 인증서가 꼭 필요하다면
클라우드플레어 말고 다른 DNS 서비스 https://asia.cloudns.net/ 같은 곳을 이용하는 것이 낫습니다.
그래도 클라우드플레어의 장점이 많으니 이용하는 것이 낫겠죠? ^^;;
현재 사용하거나, 사용하고 싶은 도메인을 모두 등록하면 됩니다.
mkdir /etc/nginx/ssl
wordpress 인증서 설치
우선 위와 같이 SSL 인증서가 저장될 폴더를 지정합니다.
acme.sh --issue -w /var/www/wordpress -d aced.ga -d www.aced.ga -d blog.aced.ga -d home.aced.ga -d nas.aced.ga --keylength ec-384 --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --cert-file /etc/nginx/ssl/chain.pem --reloadcmd "systemctl reload nginx.service"
============= change ===================================>>>>
acme.sh --issue -w /var/www/wordpress -d 11q.kr -d www.11q.kr -d ha.11q.kr -d --keylength ec-384 --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --cert-file /etc/nginx/ssl/chain.pem --reloadcmd "systemctl reload nginx.service"
위와 같이 webroot 방식으로 발급받으면 멀티도메인 거의 무제한으로 발급 받을 수 있습니다.
와일드카드 도메인이 아니라도 아쉬움없이 사용할 수 있을 것입니다.
대신에 /var/www/wordpress 와 같은 현재 웹서버의 root 폴더를 지정해줘야 합니다.
그러면 현재 제 구글 클라우드 무료 플랜의 서버에서 직접 실행한 결과를 보여드리겠습니다.
acme.sh --issue -w /var/www/gnuboard -d aced.ga -d www.aced.ga -d blog.aced.ga -d home.aced.ga -d nas.aced.ga --keylength ec-384 \
> --key-file /etc/nginx/ssl/privkey.pem \
> --fullchain-file /etc/nginx/ssl/fullchain.pem \
> --cert-file /etc/nginx/ssl/chain.pem \
> --reloadcmd "systemctl reload nginx.service"
============= change ===================================>>>>
acme.sh --issue -w /var/www/www -d 11q.kr -d www.11q.kr -d blog.11q.kr -d homea.11q.kr -d ha.11q.kr --keylength ec-384 \
> --key-file /etc/nginx/ssl/privkey.pem \
> --fullchain-file /etc/nginx/ssl/fullchain.pem \
> --cert-file /etc/nginx/ssl/chain.pem \
> --reloadcmd "systemctl reload nginx.service"
5. 발급 리스트 확인하기
acme.sh list
6. 자동갱신 삭제하기
잘못 발급받았거나, 필요없을땐 삭제해야겠죠.
acme.sh --remove -d yourdomain.com --ecc
위 명령으로 자동갱신이 삭제됩니다. 아까 위에 있던 Main_Domain에 있는 것 1개만 넣으면 됩니다.
[Tue 02 Jun 2020 07:29:05 PM KST] wsgvet.com is removed, the key and cert files are in /etc/letsencrypt/wsgvet.com_ecc
[Tue 02 Jun 2020 07:29:05 PM KST] You can remove them by yourself.
위와 같이 자동갱신이 삭제되었고, 해당 폴더는 삭제가 안되니, 스스로 삭제하라고 합니다. ㅎㅎ
7. acme.sh 자동 업그레이드 하기
acme.sh --upgrade --auto-upgrade
위 명령어를 넣으면 됩니다.
[Tue 02 Jun 2020 06:42:39 PM KST] Already uptodate!
[Tue 02 Jun 2020 06:42:39 PM KST] Upgrade success!
위와 같이 나오면 성공입니다.
8. 자동갱신
acme.sh로 인증서를 발급받았다면 자동으로 발급 후 60일 뒤에 갱신하게 됩니다.
별다른 작업이 필요없는 것이 큰 장점입니다.
crontab -e
위 명령어를 넣으면
9 0 * * * "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt" > /dev/null
위와 같이 매일 한번씩 시도하는 것을 알 수 있습니다.
9. Nginx에 적용하기
443포트를 받는 server{ } 에 넣어주시면 됩니다.
기존 인증서 경로 바로 밑에 넣어주셔도 되구요.
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
위와 같이 인증서키와 풀체인 인증서를 넣어주시면 됩니다.
OSCP 인증을 하려면 trusted가 필요한데, RSA인증서 발급시 지정했다면 추가로 지정할 필요가 없습니다. ^^
================
[nas] Synology NAS 에서 crontab 사용 방법
https://llallallall.blogspot.com/2021/05/nas-synology-nas-crontab.html
sudo vi /etc/crontab
sudo su
vi /etc/crontab
9 0 * * * "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt" > /dev/null
=============
crond 를 재구동 한다.
synoservicectl --restart crond
작업 스케쥴러에 등록 하기
nano /volume1/homes/shimss/let_auto.sh
9 0 * * * "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt" > /dev/null
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠
관련자료
-
링크