이번에 회사 SSL 계정이 만료됨에 따라 새로운 SSL 인증서를 발급하는 작업을 했다. 그리고 때 맞춰 회사의 랜딩 페이지가 새로 만들어졌기에 nginx에 SSL을 붙이는 작업도 병행했다.
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
exmaple.key
는 RSA 2048 bit 방식을 사용하는 개인키다.example.csr
은 Certificate Signing Request 의 약자로, 인증서를 발급받기 위해 개인이나 단체의 정보가 포함된 인증서다. SSL 인증기관에 신청시 이 csr 파일의 값을 제출한다.example.key
파일을 RSA 방식으로 한번더 인코딩을 해줘야한다.openssl rsa -in example.key -out example-rsa.key
AddTrustExternalCARoot.crt
COMODORSADomainValidationSecureServerCA.crt
COMODORSAAddTrustCA.crt
STAR_example_co_kr.crt
cat
명령어로 쉽게 bundling 할 수 있다. 미리 해두자cat STAR_example_co_kr.crt \
COMODORSADomainValidationSecureServerCA.crt \
COMODORSAAddTrustCA.crt \
AddTrustExternalCARoot.crt > example.ca-bundle
example.ca-bundle
파일과 example-rsa.key
파일을 적절한 위치에 집어넣자. 나는 /etc/nginx/ssl
에 넣었다./etc/nginx/sites-available
에 있는 사이트 설정 파일을 수정하자.server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl on;
ssl_certificate /etc/nginx/ssl/example.ca-bundle;
ssl_certificate_key /etc/nginx/ssl/eample-rsa.key;
ssl_prefer_server_ciphers on;
server_name example.co.kr
...
}
server {
listen 80;
server_name example.co.kr;
rewrite ^ https://$server_name$request_uri? permanent;
}
sudo service nginx restart
명령어로 nginx를 재시작 할 때 에러가 나는 경우가 있다. 다음 명령어로 위험을 줄일 수 있다.nginx -c /etc/nginx/nginx.conf -t # 설정파일 미리 검사.
sudo service nginx reload # 서비스를 재시작 하지 않고 설정 파일만 다시 불러온다. 설정이 잘못되더라도 서비스가 꺼지지 않는다.