Let's Encrypt SSL 인증서 Azure 에 적용하기

웹 서버 브라우저와의 안전한 통신을 위해 HTTPS를 사용하기 위해서는 SSL 인증서가 필요합니다.

https://letsencrypt.org 을 이용하면, 개인용이나, 개발용으로 싱글 DNS에 대해서 SSL 인증서를 발급받는 것을 무료로 진행할 수 있습니다.

Let's encrypt에서 제공하는 퉁을 이용해 SSL 인증서를 발급 받아보고, pem 확장자의 인증 파일을 SSL 오프로드를 위해 사용한 azure application gateway에서 사용할 pfx 확장자 인증 파일로 변환해 봅니다.

letsencrypt tool install

> sudo apt update -y && sudo apt install letsencrypt -y

설치 후 실행 시 아래와 같은 에러가 발생하면,

Traceback (most recent call last):
...
(중략)
...
  File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/contrib/pyopenssl.py", line 54, in <module>
  File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 118, in <module>
    SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

아래 명령으로 Python SSL 모듈을 업그레이드 해줍니다.

> sudo python -m easy_install --upgrade pyOpenSSL

create manual cert keys

80번 포트를 사용하고 있는 프로그램이 있다면, 먼저 중지해 줍니다.

letsencrypt 에서 80 포트를 이용해 자동 인증 후 key 파일을 생성 해줍니다.

> sudo letsencrypt certonly --standalone -d yourdomain.dns.com

  signer = key.signer(self.padding, self.hash)

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/dev.stylegrab.style/fullchain.pem. Your cert
   will expire on 2018-10-18. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

생성된 키 파일들은 아래 디렉토리에 생성됩니다.

> ls -al /etc/letsencrypt/archive/yourdomain.dns.com/

-rw-r--r-- 1 root root 2167  7월 21 04:23 cert1.pem
-rw-r--r-- 1 root root 1647  7월 21 04:23 chain1.pem
-rw-r--r-- 1 root root 3814  7월 21 04:23 fullchain1.pem
-rw-r--r-- 1 root root 1704  7월 21 04:23 privkey1.pem

convert pem to pfx file

때에 따라서는 http 에 ssl적용을 위해서 pfx 파일이 필요할 때도 있습니다.

이럴때는 아래 명령으로 pfx file 을 생성해서 사용하시면 됩니다.

> openssl pkcs12 -export -out cert.pfx -inkey privkey1.pem -in cert1.pem -certfile chain1.pem
In [ ]:
 

Comments

Comments powered by Disqus