[Nginx] Linux에서 SSL인증서 적용 방법
1. 개요
- Nginx 가 Linux 기반OS에 설치되어있다는 가정하에 기본설정파일에서 SSL인증서 적용하는 방법 소개
- Nginx 설치방법 URL
2. 테스트용 SSL인증서 생성( SSL인증서파일이 있는 경우 생략가능)
## nginx-ssl.com 도메인으로 SSL인증서 생성에 필요한 설정파일 작성
vi nginx-ssl.conf
[req]
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[req_distinguished_name]
CN = nginx-ssl.com
OU = Test
O = Test Company
L = Test
ST = Seoul
C = KR
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = nginx-ssl.com
## 테스트용 SSL인증서 생성( 파일경로는 자신의 환경에 맞추어 수정필요)
openssl req -x509 -days 365 -nodes -newkey rsa:2048 -keyout nginx-ssl.key -config nginx-ssl.conf -out nginx-ssl.crt
3. Nginx 기본 설정 파일에서 SSL인증서 적용방법
- 기본설정파일 위치: /etc/nginx/nginx.conf 에서 443포트 주석 풀고, ssl_certificate, ssl_certificate_key 관련 설정
# Settings for a TLS enabled server.
server {
listen 443 ssl;
server_name nginx-ssl.com;
root /usr/share/nginx/html;
ssl_certificate "/APP/nginx_binary/conf/nginx-ssl.crt"; #파일명 및 경로 수정필요
ssl_certificate_key "/APP/nginx_binary/conf/nginx-ssl.key"; #파일명 및 경로 수정필요
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
4. Nginx 가동 후 SSL(443포트) 정상 가동여부 점검
- 443포트가 listen되고, 웹페이지 정상가동여부 확인됨
[root@rocky8: /APP/nginx_binary/bin]# ./start.sh
[root@rocky8: /APP/nginx_binary/bin]# ./status.sh
########## nginx status ########
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2023-03-27 17:04:38 EDT; 26min ago
Process: 2078 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 2076 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 2074 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 2079 (nginx)
Tasks: 5 (limit: 49275)
Memory: 7.9M
CGroup: /system.slice/nginx.service
├─2079 nginx: master process /usr/sbin/nginx
├─2080 nginx: worker process
├─2081 nginx: worker process
├─2082 nginx: worker process
└─2083 nginx: worker process
Mar 27 17:04:38 rocky8.linuxvmimages.local systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 27 17:04:38 rocky8.linuxvmimages.local nginx[2076]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 27 17:04:38 rocky8.linuxvmimages.local nginx[2076]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 27 17:04:38 rocky8.linuxvmimages.local systemd[1]: Started The nginx HTTP and reverse proxy server.
########## nginx process ########
root 2094 0.0 0.0 12144 1100 pts/0 S+ 17:31 0:00 \_ grep nginx
root 2079 0.0 0.0 120352 2236 ? Ss 17:04 0:00 nginx: master process /usr/sbin/nginx
nginx 2080 0.0 0.1 153068 8044 ? S 17:04 0:00 \_ nginx: worker process
nginx 2081 0.0 0.1 153068 8052 ? S 17:04 0:00 \_ nginx: worker process
nginx 2082 0.0 0.1 153068 8012 ? S 17:04 0:00 \_ nginx: worker process
nginx 2083 0.0 0.1 153068 8052 ? S 17:04 0:00 \_ nginx: worker process
########## netstat ########
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2079/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1069/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 2079/nginx: master
tcp6 0 0 :::80 :::* LISTEN 2079/nginx: master
tcp6 0 0 :::22 :::* LISTEN 1069/sshd
댓글남기기