Nginx & OpenSSL - goddes4/python-study-wiki GitHub Wiki

Nginx + OpenSSL 설치 및 SSL 인증서 만들기

웹서버 구동시 패스워드 무시 하도록 PassPhrase 제거

$ openssl rsa -in <파일명>.key.secure -out <파일명>.key

인증서 및 개인키 만들기

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

nginx.conf

server {
	listen       443;
	server_name  localhost;

	ssl     on;
	ssl_certificate /etc/nginx/ssl/nginx.crt;
	ssl_certificate_key /etc/nginx/ssl/nginx.key;
}

Chrome 브라우저에서 ERR_CERT_COMMON_NAME_INVALID 오류나는 경우

SAN 을 지정하지 않고 인증서를 만들 경우 Edge 브라우저에서는 안전한 페이지 로써 동작하나 Chrome이나 Opera 브라우저에서는 보안 문제로 여긴다. 다음은 크롬에서 발생하는 에러이다.

때문에 SAN을 지정하여 인증서를 만들어서 등록 해야한다.

openssl req \
    -newkey rsa:2048 \
    -x509 \
    -nodes \
    -keyout server.key \
    -new \
    -out server.crt \
    -subj /CN=eslserver.biz \
    -reqexts SAN \
    -extensions SAN \
    -config <(cat /usr/lib/ssl/openssl.cnf \
        <(printf '[SAN]\nsubjectAltName=DNS:eslserver.biz')) \
    -sha256 \
    -days 3650
⚠️ **GitHub.com Fallback** ⚠️