밀어서 잠금해제

IIS8 에서 LetsEncrypt simple windows 문제 본문

Web/IIS

IIS8 에서 LetsEncrypt simple windows 문제

HAYAN_DEV! 2017.04.16 00:26

아.. 정말 오랜만에 글을 써봅니다. 1년인가요.

어차피 이 블로그를 그렇게 많이 보지 않아서 여러모로 정말 쓸모가 없어지고 있는 블로그입니다.


그러던 찰나에 정리해 두고 싶은 글을 써야되는 일이 생겨버렸습니다.

바로 Let'sEncrypt입니다.


정말 기나긴 삽질을 했습니다. 개발하다 말고 꼬박 하루를 삽질했네요 ㅡㅡ;

개발할 것도 많은데; 그냥 bonobo git 같은거 쓰지 말고 bitbuket같은걸로 옮길까봐요;


일단 기왕 해결한거 짧게 글을 써보게씁니다.


겪은 문제는 크게 2가지 입니다.

첫번째 문제는 기존에 돈을 주고 산 인증서와 LetsEncrypt 인증서간의 문제였습니다.


IIS에서는 도메인 이름과 IP를 바인딩 해주는 기능이 있습니다.


서버 아이피가 192.168.0.2 라고 할 때,

사이트 이름 : 블로그

프로토콜 : http / 주소 : 192.168.0.2 / 포트 : 80

도메인 : youtil.wo.tc


사이트 이름 : 기본사이트

프로토콜 : http / 주소 : 192.168.0.2 / 포트 : 80

도메인 : non.youtil.wo.tc


이런식으로 해두면 non.youtil.wo.tc는 기본사이트쪽 홈으로 이동하고 youtil.wo.tc는 블로그로 이동하는 기능말입니다.


와일드카드 인증서가 아니라 SAN(주체 대상 이름)인증서를 사용하고 계신 분들이라면 IIS7에서는 별 괴상한 방법으로 인증서를 추가하셨겠지만,

다행히도 IIS 8에서는 SNI라는걸 지원하죠. 한글 IIS라면 도메인 입력하는 란 아래 서버 이름 표시가 있는데 이게 SNI입니다.


프로토콜을 https로 선택한뒤 인증서를 선택하고 SNI에 체크하면 모든게 만사 OK죠.


-하지만 여기서 LetsEncrypt simple windows를 사용하면 꼬일 수 있습니다!-


위에 서 든 예의 non.youtil.wo.tc의 도메인을 가진 기본사이트에 SSL을 LetsEncrypt로 추가했는데 youtil.wo.tc에 접속을 하니 인증서에 문제가 있다고 뜨는겁니다.

문제를 확인해보니 이 인증서는 non.youtil.wo.tc에서만 사용 할 수 있다는군요.


SNI를 켜면 만사 OK아니었나요!


이렇게 꼬였을 때는 cmd를 관리자 권한으로 여시고

다음과 같이 타이핑하시면 됩니다. 뒤에 있는 아이피와 포트 번호는 여러분의 상황에 맞게 수정하시기 바랍니다.


netsh http delete sslcert ipport=192.168.0.2:443



두 번째 문제는 인증서 해지(revocation)와 관련된 문제입니다.

크롬이나 IE나 엣지는 잘 되는데 git이 작동을 안하더라구요.


이 문제는 https://www.sslshopper.com/ssl-checker.html <- 이 사이트에서도 점검해 보실 수 있습니다.


일단, git을 사용 할 때 나온 에러는 아래와 같습니다.

next InitializeSecurityContext failed: Unknown Error (.....) 해지서버가 오프라인 상태이므로 해지 상태를 확인할 수 없습니다.


하아. 이 문제를 해결하는게 가장 어려웠습니다.

아래 포럼이 저에게 해결 방안을 주었습니다.

만약 위와 같은 문제가 생겼다면 주저하지말고 아래 링크로 들어가주세요.


https://community.letsencrypt.org/t/iis-8-5-building-incorrect-chain-with-lets-encrypt-authority-x3/13320/84


이 문제는 Let'sEncrypt 초창기에 사용했던 인증서가 아직도 남아있어서 지금은 사용되지 않는 중간자 인증서를 IIS쪽에서 계속해서 중간자 인증서로 넘겨주니까 생기는 문제였습니다.


그런데 저의 경우는 위 포럼에서 나온 방법대로 X1을 전부 지우고 IIS를 몇 번이나 다시 시작해도 고쳐지질 않았습니다 ㅂㄷㅂㄷ;

그래서 letsencrypt에 관련된 폴더(C:\Users\[UserName]\AppData\Roaming\letsencrypt-simple-window~~~~~)를 지운 후 letsencrypt로 인증를 발급받은 사이트의 폴더에 들어가서 관련 파일을 삭제한 다음에 IIS에서 letsencrypt로 발급받은 모든 인증서를 지웠습니다.


그 다음 다시 한번 letsencrypt로 발급받으니 모든 문제가 해결되었습니다. 메데타시메데타시.


신고
0 Comments
댓글쓰기 폼