하나의 서버에 여러개의 도메인에서 SSL 인증서를 사용하는 방법에 대하여 알아봅니다. 어떻게 하면 가능할까요?



# 하나의 서버에 여러 SSL 적용방법, nginx
우선 하나의 서버에서 멀티 도메인을 사용하는 경우 여러개의 SSL 인증서를 적용할 수 없습니다. 만약 여러개의 인증서를 사용하려면 SNI(Server Name Indication)을 사용하는 방법이 있습니다. SNI는 TLS프로토콜 확장 방법으로 여러개의 SSL 설정을 가능하도록 도와줍니다. 다만 설정하기 위해서 아래의 과정들이 필요합니다.


! SNI 사용하는 방법
nginx에 아래의 커맨드를 입력합니다.
nginx -V

이제 nginx 서버 설정에 두 개의 인증서를 설정합니다.
server {
  listen 443;
  server_name test1.com
  ssl on;
  ssl_certificate /etc/nginx/ssl/test2.crt;
  ssl_certificate_key /etc/nginx/ssl/test2.key;

  ssl_prefer_server_ciphers on;

  location / {
    include uwsgi_params;
    uwsgi_pass unix:/home/ubuntu/webisfree.sock;
  }
}

server {
  listen 443;
  server_name test2.com;
  ssl on;
  ssl_certificate /etc/nginx/ssl/test2.crt;
  ssl_certificate_key /etc/nginx/ssl/test2.key;

  ssl_prefer_server_ciphers on;

  location / {
    include uwsgi_params;
    uwsgi_pass unix:/home/ubuntu/webisfree.sock;
  }
}

이제 nginx 설정이 끝났습니다. nginx 서버를 재시작합니다.



# 마치면서처음 SNI를 사용해 멀티 도메인 SSL을 적용하면서 여러가지 시행착오가 많았습니다. 서버에 하나의 SSL 인증만 적용 가능하다고해서 철렁했으나 SNI를 사용하는 방법이 다행히 존재하였고 이를 사용하여 현재 여러개의 멀티 인증서를 각각 적용하여 잘 사용하고 있습니다.

중간에 구글링을 통하여 해결하는 과정에서 데이터베이스 서버가 멈추고 동작하지 않는 문제가 발생하는 등 여러 이슈가 나타났으나 결국은 정상적으로 동작하게되었습니다.

ㅏㅇ