나의 잡다한 노트 및 메모
Let's Encrypt로 공인 CA 인증서 만들어 SSL/TLS 설정 본문
Jenkins가 https 통신을 할 수 있도록 앞단에 리버스 프록시(nginx)를 달아놓으려고 한다.
이때, 인증서를 만들 때, Let's Encrypt로 만드려고 한다.
Let's Encrypt는 certbot 이라는 것을 설치해야한다.
공인 CA 인증서로 활용이 가능해서 프로덕션용으로도 쓸 수 있다고 한다.
openssl을 활용해 인증서를 만드는 것은 self-signed 인증서로 내부 네트워크에서만 쓰거나 테스트 용으로 쓰는 것이 좋다. 프로덕션용으로는 좋지 않다고 한다.
먼저, 웹 서버에 연결할 도메인이 있어야 한다. 해당 도메인의 A 레코드가 서버의 공인 IP로 올바르게
설정돼 있어야 한다.
certbot을 설치하고, 인증서를 발급받아야한다.
인증서 발급 ( standalone 모드 )
여기서 standalone 모드는 기존 웹 서버를 사용하지 않고, certbot이 자체적으로 간단한 웹 서버를 실행해 인증 과정을 처리하는 모드이다.
- sudo certbot certonly --standalone -d jenkins.example.com
- Let’s Encrypt가 HTTP-01 챌린지를 통해 우리가 사용할 도메인을 검증 후 /etc/letsencrypt/live/jenkins.example.com/ 경로에 인증서를 발급합니다.
- 발급 성공 시
- fullchain.pem, privkey.pem 등 파일들이 /etc/letsencrypt/live/jenkins.example.com/ 아래에 위치
그리고 인증서를 쓰기 위해 nginx 컨테이너에서 volume 지정을 해준다.
nginx.conf 의 일부 설정이다.
# HTTPS 서버
server {
listen 443 ssl;
server_name jenkins.example.com; # 인증서/키 경로 (Let's Encrypt 발급 파일) ssl_certificate /etc/letsencrypt/live/jenkins.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jenkins.example.com/privkey.pem;
간단하다. 추가로 Let's Encrypt 인증서는 90일 유효기간이므로 갱신이 필요하다.
'보안' 카테고리의 다른 글
정보보호 정책 (0) | 2024.09.25 |
---|---|
CORS(Cross-Origin Resource Sharing) (0) | 2023.11.30 |
아파치 웹 서버 기초적인 보안 설정 (0) | 2023.09.03 |
웹 애플리케이션 취약점을 통한 해킹 (0) | 2023.09.03 |
[보안] 웹 서버 취약점을 통한 해킹 (0) | 2023.09.03 |