윈도우10 환경에서 Let’s Encrypt의 SSL인증서를 적용해봤습니다

이 글은 읽는데 약 8분이 걸립니다.
이 글은 약 7년전에 작성된 글입니다. 내용 및 정보가 현재 상황에 맞지 않을 수도 있습니다.

SSL인증서

무료 SSL인증서 Let’s Encrypt를 사쿠라렌탈서버에 적용해봤습니다.

루트권한이 없기 때문에, 내 PC로 인증서를 취득해서 서버에 등록해야합니다.
Linux환경이 필요하지만 Windows10으로 Bash를 사용할수 있어서 Windows만으로 해결했습니다.

저의 테스트 환경은 다음과 같습니다.

  • 일본 사쿠라인터넷 렌탈서버(스탠다드 플랜)
  • Windows10

위와 같은 환경에서 실행해보고 성공한 것이기에 모든 상황에 적용된다는 보장은 없습니다. 직접 서버를 돌리시는 분은 방법이 다를 수도 있습니다. 서버지식이 없어서 솔직히 잘 모르겠습니다만 그저 참고용으로만 활용해주시기 바랍니다.

Bash on Ubuntu on Windows 설치

기능의 유효화

윈도우10

먼저, 윈도우10에서 Linux Subsystem을 유효화해야합니다. 시작버튼을 마우스 우클릭해서, 프로그램 및 기능을 클릭합니다.

윈도우 기능

좌측의 Windows 기능 켜기/끄기를 클릭합니다.

Windows Subsystem for Linux (Beta)

Windows Subsystem for Linux (Beta)를 찾아서 v체크를 합니다..

재부팅

설치가 끝나면 재부팅 해 주세요.

개발자모드의 유효화

업데이트 및 복구
개발자 모드

재부팅한 후에 시작메뉴에서 설정 → 업데이트 및 복구를 클릭한 다음, 좌측메뉴에서 개발자용을 선택하고 개발자 모드에 v체크해줍니다.

개발자 기능 사용

경고창이 뜨지만 예를 클릭해주세요.

bash 설치

bash 설치

커맨드창(cmd.exe)을 실행시켜서 bash커맨드를 입력합니다.

y를 입력하고 Enter

설치가 완료되면 사용자를 작성합니다. 임의의 사용자이름을 입력하고 Enter키를 누릅니다. 그 다음에 패스워드를 입력합니다. 이때, 보안상의 이유로 화면에는 아무것도 표시되지 않지만, 입력은 제대로 되고 있으므로 잘못입력하지 않게 조심하세요. 입력 후에 Enter를 누르면 확인을 위해 한 번 더 패스워드를 입력해주세요.

이것으로 설치는 완료되었습니다.

초기설정

리포지토리 변경

디폴트 상태로는 답답할 정도로 느리기 때문에 리포지토리를 변경합니다. 아래의 명령어를 입력해서 변경해주세요.

sudo sed -i -e ‘s%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g’ /etc/apt/sources.list
(2줄로 보이지만 1줄에 이어서 입력해주세요)

패키지 업데이트

sudo apt update
sudo apt upgrade

삭제하시거나 재설치하실 경우

lxrun /uninstall /full
lxrun /install

자, 이제 Windows10에 Ubuntu가 설치되었습니다. 이제 SSL인증서를 발급받아 보겠습니다.

SSL인증서 발급받기

Let’s Encrypt 클라이언트를 설치

먼저 Bash를 실행해서 OS를 확인해주세요.

lsb_release -d
Description: Ubuntu 14.04.5 LTS

저는 우분투 14.04네요

공식사이트에 있는 명령어를 사용해서 실행파일을 다운로드합니다.

Certbot クライアントのインストール - Let's Encrypt 総合ポータル

일본어가 가능하시면 위의 사이트를 참고하시고,

Certbot
Tagline

일본어를 모르시는 분들은 위의 링크로 들어가셔서 사용하고 있는 웹서버와 OS를 선택하시면 설치방법이 나옵니다.

두 사이트에서 제시하는 내용이 다를 수도 있습니다. 제 경우는 Ubuntu 14.04이었고 일본어 공식사이트에서 본 명령어를 입력했습니다.

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto
Failed to find apache2ctl in PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

apache가 없다는 에러가 나오지만 저는 패스합니다. 어차피 제가 서버를 운영하고 있는것이 아니라서…

SSL인증서 발급

드디어 인증서를 발급해보겠습니다.

./certbot-auto certonly –manual

①이메일주소 입력(이런저런 알림 수신용)

②약관에 동의

③Electronic Frontier Foundation에 메일주소공유에 동의

④도메인 입력

⑤IP로그취득에 동의

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to cancel): e-mail@gmail.com ①이메일주소입력
Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree in order to register with the ACME server at https://acme-v01.api.letsencrypt.org/directory
(A)gree/(C)ancel: a ②약관에 동의Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let’s Encrypt project and the non-profit organization that develops Certbot? We’d like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights.
(Y)es/(N)o: y ③메일주소공유에 동의
Please enter in your domain name(s) (comma and/or space separated) (Enter ‘c’ to cancel): peterpan77.com ④도메인 입력
Obtaining a new certificate Performing the following challenges:http-01 challenge for peterpan77.comNOTE: The IP of this machine will be publicly logged as having requested this certificate. If you’re running certbot in manual mode on a machine that is not your server, please ensure you’re okay with that. Are you OK with your IP being logged?
(Y)es/(N)o: y ⑤IP로그취득에 동의

Make sure your web server displays the following content at
http://ⓐpeterpan77.com/.well-known/acme-challenge/ⓑPbajEcTIE4bucDz8NWxZElLuNbvxsHzjsjxxxxxxxxx before continuing:

ⓒPbajEcTIE4bucDz8NWxZElLuNbvxsHzjsjxxxxxxxxx.D8i-K-eobhrLdvOK6gw3L1f5RlGn2xwUSJJ4xGFPvW8

If you don’t have HTTP server configured, you can run the following command on the target server (as root):

mkdir -p /tmp/certbot/public_html/.well-known/acme-challenge
cd /tmp/certbot/public_html
printf “%s” PbajEcTIE4bucDz8NWxZElLuNbvxsHzjsjxPk4W6eZ0.D8i-K-eobhrLdvOK6gw3L1f5RlGn2xwUSJJ4xGFPvW8 > .well-known/acme-challenge/PbajEcTIE4bucDz8NWxZElLuNbvxsHzjsjxPk4W6eZ0 # run only once per server:
$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
“import BaseHTTPServer, SimpleHTTPServer; \
s = BaseHTTPServer.HTTPServer((”, 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()”
Press Enter to Continue

여기까지 하시면 위와 같은 화면이 나옵니다.

ⓐ는 방금전에 입력한 도메인명
ⓑⓒ는 랜덤 영숫자

일단 이상태에서 Bash창은 이대로 놔두시고 FTP프로그램 등을 이용해서 서버에 폴더 작성
서버루트/.well-known/acme-challenge/

텍스트파일을 하나 만들고 「acme-challenge」폴더에 저장

파일명→②의 영숫자
파일내용→③의 영숫자

다시 Bash로 돌아와서 Enter를 눌러주세요.

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/도메인/fullchain.pem.

이상이 없으면 위와같은 메세지와 함께 인증서의 저장된폴더가 표시됩니다.

확인해보겠습니다.

sudo su
ls /etc/letsencrypt/live/도메인/
cert.pem chain.pem fullchain.pem privkey.pem

4개의 파일이 생성되었습니다.

윈도우 파일탐색기에서도 확인이 가능합니다.

C:\사용자(Users)\사용자이름\AppData\Local\lxss\rootfs\etc\letsencrypt\live\도메인

위의 것은 심볼릭링크 파일이고, 실제파일은

C:\사용자(Users)\사용자이름\AppData\Local\lxss\rootfs\etc\letsencrypt\archive\도메인\privkey1.pem

이곳에 저장되어 있습니다.

숨김파일로 되어있기 때문에 이 파일들을 보려면 폴더옵션에서

  • 숨김 파일, 폴더 및 드라이브 표시에 체크
  • 보호된 운영 체제 파일 숨기기를 체크해제

해주셔야 볼 수 있습니다.

사쿠라인터넷에서 SSL인증서를 등록

사쿠라 인터넷 도메인 등록

사쿠라 컨트롤 판넬에서 도메인등록 클릭

사쿠라인터넷 SSL인증서 등록

SSL인증서의 등록 버튼을 클릭

비밀키

아까 위에서 확인한 privkey1.pem을 선택하고 업로드

인증서 설치

인증서 설치
cert.pem(cert1.pem)의 내용을 전부 복사해서 붙여넣기하고 송신 클릭

중간인증서 설치

중간인증서 설치 클릭

SSL 등록

chain.pem(chain1.pem)의 내용을 전부 복사해서 붙여넣기하고 송신 클릭

이것으로 SSL등록이 완료되었습니다.

SSL을 유효 설정

인증서 유효화

도메인 설정으로 돌아와서 4. SSL이용은 선택하십시오. → SNI SSL를 이용하기에 체크

끝!!

https://~ 으로 접속이 가능해졌습니다. 브라우저의 URL에 자물쇠마크가 무사히 표시되었습니다.

인증서의 갱신

인증서의 유효기간은 90일입니다. 90일이 지나기전에 갱신할 필요가 있는데요, 사쿠라인터넷에서는 자동갱신을 할수가 없는것 같습니다. 갱신할때가 오면 위의 흐름을 다시 한번 반복할 필요가 있습니다. 귀찮기는 하지만, 무료로 SSL을 사용할수 있기 때문에 나름 괜찮다고 생각합니다.

참고사이트

さくらレンタルサーバーに独自SSL「Let's Encrypt」導入(Windows10編) - Qiita
※2017年10月 追記さくらレンタルサーバーがLet's Encryptに標準で対応しました!下記…

댓글

  1. […] 윈도우10 환경에서 Let’s Encrypt의 SSL인증서를 적용해봤습니다 … […]

제목과 URL을 복사했습니다