도찐개찐

[Docker] Nginx OpenSSL 설정 본문

Infra -------------------------/DOCKER

[Docker] Nginx OpenSSL 설정

도개진 2023. 12. 6. 11:11

Docker Nginx OpenSSL 설정

1. Docker nginx 컨테이너 SSL 포트 expose

Nginx 컨테이너 생성: Nginx 컨테이너를 생성합니다. 이를 위해 Docker 명령어를 사용합니다. 예를 들어, 기본 Nginx 이미지를 사용할 수 있습니다

$ docker run --name my-nginx -p 80:80 -p 443:443 -d nginx

2. Docker nginx 컨테이너 내부 접속

$ docker exec -it my-nginx bash

3. nginx 컨테이너 OpenSSL 설치

$ apt -y update && apt -y install openssl

4. nginx 컨테이너 SSL 인증서 생성

$ mkdir /etc/nginx/ssl && openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

5. nginx.conf 설정

  • Nginx 설정 파일 찾기: 일반적으로 nginx.conf 파일은 /etc/nginx/nginx.conf에 위치합니다.
  • $ vi /etc/nginx/nginx.conf
  • HTTP 서버 블록 수정 또는 추가: 기존의 HTTP 서버 블록을 찾아서 수정하거나, 새로운 서버 블록을 추가합니다. 예를 들어, 다음과 같이 설정할 수 있습니다:
server {
    listen 80;
    server_name your_domain.com; # 여기에 도메인을 입력
    return 301 https://$server_name$request_uri;
}
  • HTTPS 서버 블록 추가: SSL을 사용하기 위한 새로운 서버 블록을 nginx.conf 파일에 추가합니다. 예시:
server {
    listen 443 ssl;
    server_name your_domain.com; # 여기에 도메인을 입력

    ssl_certificate /etc/nginx/ssl/nginx.crt; # SSL 인증서 파일 경로
    ssl_certificate_key /etc/nginx/ssl/nginx.key; # SSL 키 파일 경로

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}
  • 구성 파일 검증: 설정 변경 후, 구성 파일의 문법 오류가 없는지 확인합니다:
  1. $ nginx -t
  2. nginx 컨테이너 빠져 나오기
  3. $ exit
  4. nginx 컨테이너 재실행
  5. $ docker restart my-nginx

 

728x90
Comments