태그 Archives: Let’s encrypt

Let’s encrypt – ACMEv1 지원 종료

Let’s encrypt 에서 API (ACMEv1) 을 종료할 계획을 발표 했다.

오늘 관련 메일을 수신 받았고 내용을 확인해 봤을때 아래와 같다.

2019년 11월 – 신규 어카운트 사용 불가 (기 등록 계정[메일주소]은 사용 가능)

2020년 6월 – 신규 도메인 발급 불가 (기존 도메인 renew 만 가능)

2021년 초 – 지원 종료 (사용 불가)

https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430

 

간단히 말해서 ACMEv2 주소를 ACMEv1 대신 사용하면 된다.

ACMEv2 의 경우 2018년 3월에 공개가 되었으며 STAR(*) 인증서 발급을 지원한다.

 

기본적으로 certbot 의 경우 실행시 자동으로 업데이트를 한다. (renew 에서도)

그러므로 API 주소만 단순히 ACMEv2 을 사용하면 동일 하게 사용할 수 있다.

( https://acme-v01.api.letsencrypt.org/directory –> https://acme-v02.api.letsencrypt.org/directory )

 

테스트 결과 renrwal 폴더 안의 conf 파일의 기존 ACMEv1 주소를 ACMEv2 으로 변경하면 정상적으로 갱신이 가능하다.

 

Let’s encrypt 에서 생성된 pem 인증서를 tomcat에서 사용 하기

Let’s encrypt 의 경우 일반적인 apache / nginx 에서 사용이 가능한 pem 파일을 생성 한다.

 

때문에 tomcat 에서 사용을 하기 위해서는 jks 로의 변환을 해서 org.apache.coyote.http11.Http11NioProtocol 프로토콜로 사용을 하거나

apr 및 tomcat-native 설치 하여 org.apache.coyote.http11.Http11AprProtocol 을 사용할 수 있다.

 

먼저 pem 파일을 jks 로 만드는 스크립트 이다. 중요한 부분은 18~22 줄이다.

이후 server.xml 설정에서 아래와 같이 설정하여 https 를 활성화 할 수 있다.


다른 방법으로 Http11AprProtocol 프로토콜을 사용하여 pem 파일을 jks 로 변환 없이 사용할 수 있다.

또한 apr 프로토콜을 사용할하고 tomcat 8.5 혹은 tomcat 9 의 경우 http/2 를 지원 한다.

활성화 하기 위해서는 tomcat-native 을 설치해야 한다.

server.xml 에서는 아래와 같이 설정 한다.

 

Let’s enctypt 를 의 발급/갱신을 단순화 하기 위한 방법

Let’s encrypt 는 발급/갱신을 할때 http://도메인/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxx 를 호출 한뒤 호출에 성공한경우 도메인 소유권이 있는것으로 판단하여 발급/갱신이 이루어 진다.

다만 이경우 .htaccess 를 쓰는 워드프레스 라던가 XE 라던가 혹은 개인 설정에 의해 .htaccess 에서 리다이렉트 운용을 할 경우 발급/갱신이 어려워 질 수 있다.

 

때문에 아래와 같이 apache 의 Alias 설정 해서 좀더 효율적인 인증을 할 수 있다.

 

위 설정을 하고 난뒤에 발급 명령어는 아래와 같다.

webroot를 /var/www/html 에 고정을 하고  6번째 줄만 맞게 수정을 해서 사용하면 됩니다 ‘ㅅ’b

 

/var/www 폴더는 selinux 에서 파일컨텍스트가 허용된 폴더로 selinux 를 사용하더라도 별도의 허용처리를 할 필요가 없어서 좋음 🙂

CentOS5 에서 let’s encrypt 설치

일단 설치 법은 크게 다르지는 않지만 몇가지 막히는 부분이 있다.

 

이 다음 git을 통해 letsencrypt를 가져오는 명령어가 그냥 실행하면 되지 않는다.
아마도 git 에서 제공되는 SSL에서 지원하는 suite 가 centos 에 없거나 신뢰할수 있는 CA로 등록되어 있지 않는듯 하다. 때문에 GIT_SSL_NO_VERIFY=true를 하고 진행한다.

일단 설치는 잘 완료되 되었다.

 

이후 발급 시도시 SSL_set_tlsext_host_name 관련 에러가 날것이다.~]# cd /usr/local/letsencrypt

사유는 openssl 버전이 너무 낮기 때문에 발생하는것으로 판단된다.

 

때문에 별도의 수정이 좀 필요하다.

에러 해결은 github 의 antmd님의 댓글에서 발췌 했습니다. ‘ㅅ’a

를 한뒤에 아래 두파일의 의 1239번째줄과 296번째줄을 주석처리한다 ( # 으로.. )
~/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/SSL.py ( 1239줄 )

~/.local/share/letsencrypt/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py ( 296줄 )

 

그다음 다시 발급 시도를 하면 정상 발급이 된다.

 

 

ps. ~/.local의 파일 수정이 잘 안되는 분, 혹은 파일이 없는 경우 아래와 같이 수정된 소스를 다운받아 실행합니다.

 

시놀로지 나스에 Let’s encrypt 인증서 설치하기

20160324_PicPick_210642

우아아앙 DSM 6.0이 나오면서 시놀로지 나스가 Let’s encrypt 무료 인증서 설치가 된다.

 

 

그렇다 바로 해야지 이런건.. 먼저 내 시놀로지 웹스테이션으로 접속 ㄱㄱ..

20160324_PicPick_210245

제어판을 클릭한다.

 

 

 

20160324_PicPick_210249

제어판 내의 아무 메뉴나 클릭한다.

 

 

20160324_PicPick_210259

왼쪽메뉴의 보안 탭으로 들어가서 상단메뉴의 인증서 메뉴로 이동

 

 

20160324_PicPick_210305

당연히 기존 인증서를 교체를 선택하고 다음을 클릭!

 

 

20160324_PicPick_210404

도메인 이름자신의 시놀로지 DDNS 설정한 값을 넣고 이메일내 메일주소를 넣고 주제 대체이름에 내 도메인의 CNAME을 설정한 도메인을 추가해도된다.
예제)  synology.enteroa.kr 입력 ( 물론 사전에 내도메인에 synology 라는 호스트 추가 를  CNAME 으로 해서 enteroa.synology.me 를 해놓았다는 가정하에..)

 

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

20160324_PicPick_210447

아 망했어요.. 80 port 여기 로직도 마찬가지로 80 포트로 체크하는 더러운….
참고로 자신이 쓰는 ISP(KT,SKT,U+등 초고속 인터넷 회선 회사들.)의 내부 정책에 따라 인바운드 80 포트는 막는 일이 많습니다.

 

아 U+ 계약 기간 얼마나 남았지 ㅠ_ㅡ KT로 바꿔야 80포트가 열리는데….

 

PS. 2017년 2월 16일 추가사항 ( 여전히 본인은 80포트제한으로 못하고 있지만.. )

혹여 80포트가 열려 있으신 분은 인증서를 발급 받은 뒤에 아래와 같은 방법으로 기본 사용 인증서를
synology.com 에서 자신의 도메인 인증서 ( Let’s encrypt ) 로 바꾸면 된다.
기본 말고 자신이 연결한 도메인, webdav 등등역시 let’s encrypt 인증서로 바꿉니다. (윈도우 10 에서 webdav 를 이용한 네트워크 드라이브 연결의 기본값이 https 로 바뀌었기 때문에 중요 합니다.)


 

이후에 아래 와 같이 HTTPS 관련 옵션을 모두 활성화 하고 웹서버가 재시작 하면 빠른 속도로 웹스테이션을 사용할 수 있다.

잘 설정된 HTTPS 는 일반 HTTP 보다 빠르다 ‘ㅅ’a