Develope/Web
[SSL] NginX SSL 인증서 설정
noggame
2023. 8. 17. 20:00
1. 인증서 파일 확인
myssl_cert.pem
: 도메인 인증서myssl_nopass_key.pem
: 개인키 인증서
(참고 : nginx의 경우 버전/경우에 따라서 인증서에 비밀번호가 설정된 경우 오류가 발생할 수 있어 비밀번호 제거 후 사용하는 것이 정신건강에 좋다.)
비밀번호 해제 방법
openssl 설치
private key 제거
# 명령 실행 후 인증서 발급시 생성/전달된 비밀번호를 입력 후 비밀번호가 없는 인증서 생성 $ openssh rsa -in myssl_password_key.pem -out myssl_nopass_key.pem
2. 인증서 복사
이후 관리를 위해 가능한 인증서를 한 곳에 모아두도록 하자.
# Linux 예시
mkdir /etc/ssl/global
cp *.pem /etc/ssl/global
3. NginX 설정
nginx.conf 파일을 수정하거나 default 파일을 수정 하는 등 여러 방법이 있다.
(아래에서는 Linux 환경에서 NginX의 default 파일 수정을 예시로한다.)
$ vim /etc/nginx/sites-available/default
server{
listen 443 ssl;
server_name mydomain.co.kr;
ssl_on;
# SSL 인증서 및 키 설정
ssl_certificate /etc/ssl/global/myssl_cert.pem;
ssl_certificate_key /etc/ssl/global/myssl_nopass_key.pem;
# SSL 옵션 설정
ssl_session_cache shared:SSL:1m;
ssl_sesstion_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:+HIGH:+MEDIUM:!SSLv2L!PSK:!SRP:!ADH:!AECDH:!EXP:!RC4:+SHA;
# 로그파일 위치 지정 (Default path)
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# 기타 설정
# client_max_body_size 0; # 업로드 파일 크기 제한 (0 : 제한 없음)
# large_client_header_buffers 4 16k; # 클라이언트 헤드 버퍼 제한
# server_tokens off; # nginx 버전 정보 숨김 (/etc/nginx/nginx.conf 파일에 설정)
# 프록시 설정
location / {
# 패킷 헤더 설정
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
# 로컬 80포트로 연결
proxy_pass http://127.0.0.1:80;
}
}