이번 포스트에서는 Fabric을 사용하여 원격 서버에 무료 SSL 인증서를 발급하는 방법에 대해 알아보겠습니다.
Fabric 소개
Fabric은 파이썬으로 작성된 서버 관리 도구로, 원격 서버에 명령어를 실행하고 파일을 전송할 수 있습니다. 이를 통해 서버 관리 작업을 자동화할 수 있으며, 배포 및 설정 변경 등에 특히 유용합니다.
Let’s Encrypt 소개
무료로 SSL 인증서를 발급해주는 Let’s Encrypt는 현재 많은 웹사이트에서 인증서를 사용하고 있습니다. 이 포스트에서는 Let’s Encrypt를 사용하여 무료 SSL 인증서를 발급하고, Fabric을 사용하여 원격 서버에 적용하는 방법을 설명하겠습니다.
사전 준비
Fabric을 사용하기 전에 우선 다음 사항들을 준비해야 합니다.
- 로컬 머신에 Python 및 Fabric 설치
- 원격 서버에 SSH 접속 권한
Let’s Encrypt 인증서 발급
먼저, Let’s Encrypt를 사용하여 인증서를 발급해보겠습니다. 다음 명령어를 로컬 머신에서 실행합니다.
$ sudo apt-get update
$ sudo apt-get install certbot
$ sudo certbot certonly --standalone -d yourdomain.com
위 명령어에서 yourdomain.com
부분에 발급받을 도메인을 입력하면, Let’s Encrypt에서 해당 도메인에 대한 인증서를 발급해줍니다. 발급이 완료되면, /etc/letsencrypt/live/yourdomain.com/
경로에 인증서와 관련 파일들이 저장됩니다.
Fabric 스크립트 작성
이제 Fabric을 사용하여 인증서를 원격 서버에 적용하는 스크립트를 작성해보겠습니다.
from fabric import Connection
def deploy_ssl_cert(host, username, cert_path, key_path, cert_folder):
conn = Connection(host, user=username)
# 원격 서버에 인증서를 복사
conn.put(cert_path, cert_folder)
# 원격 서버에 인증서 적용
conn.sudo(f'cp {cert_folder}/fullchain.pem /etc/ssl/certs')
conn.sudo(f'cp {cert_folder}/privkey.pem /etc/ssl/private')
conn.close()
# 스크립트 실행
deploy_ssl_cert('your_server_ip', 'your_username', '/local/cert/path', '/local/key/path', '/remote/cert/folder')
위 스크립트에서 your_server_ip
는 원격 서버의 IP 주소, your_username
은 원격 서버에 접속할 사용자명, /local/cert/path
와 /local/key/path
는 로컬에서 발급받은 인증서 파일의 경로, /remote/cert/folder
는 원격 서버에 인증서를 저장할 폴더 경로를 입력해야 합니다.
스크립트 실행
위 스크립트를 저장한 후, 다음 명령어를 실행하여 스크립트를 실행합니다.
$ fab deploy_ssl_cert
Fabric이 원격 서버에 인증서를 적용하는 작업을 수행하게 됩니다.
마무리
이렇게 Fabric을 사용하여 Let’s Encrypt에서 발급받은 무료 SSL 인증서를 원격 서버에 적용할 수 있습니다. 이를 통해 웹 서비스의 보안을 강화하고 HTTPS 통신을 지원할 수 있습니다.
더 자세한 정보는 Let’s Encrypt 공식 문서와 Fabric 공식 문서를 참고하세요.