본문 바로가기

미분류

[박혜웅] SSL Security Warning


회사 웹서비스에서 COMODO SSL 인증서를 사용하는데, 안드로이드에서 접속하면 위와 같이 표시되는 문제가 있었다.

신기하게도 PC웹, 아이폰에서는 경고 표시가 되지 않았다. (사실 약간의 문제를 허용하는 것 같다.)


원인은 인증서가 (완벽히) 완전하지 않아서 생기는 문제인데, 아래 링크처럼 상위 루트 인증서와 함께 .crt 파일을 병합하여 사용하면 된다. COMODO 말고 다른 인증서들도 이렇게 해야 하는지는 확실치 않다.

https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1365


우리의 경우는 아래처럼 ssl-bundle.crt를 새로 생성해서 사용했다.

cat www_yourdomain_com.crt ComodoHigh-AssuranceSecureServerCA.crt AddTrustExternalCARoot.crt >> ssl-bundle.crt



최 앞단의 웹서버로 nginx를 사용하는데 위의 파일을 이용하여, ssl을 연동하기 위한 설정은 아래와 같다.


# Upstream WAS servers, e.g.: on port 80

upstream domain {

  server www1.domain.net:80;

  server www2.domain.net:80;

}


#proxy_cache_path /var/cache/nginx 

# levels=1:2 keys_zone=CACHE1:10m inactive=24h max_size=1g;


# Redirect all HTTP requests to HTTPS.

server {

  listen 80;

  server_name www.domain.net;

  location / {

    #rewrite ^ https://www.domain.net$request_uri? permanent;

    rewrite ^/(.*) https://www.domain.net/$1 permanent;

  }

}


# Proxy HTTPS requests on www to WAS servers. (www1, www2, ...)

server {

  listen 443 default_server ssl;

  server_name www.domain.net;


  ssl on;

  ssl_certificate /etc/nginx/ssl/sslzeein.crt;

  ssl_certificate_key /etc/nginx/ssl/sslzeein.key;

  ssl_session_cache shared:SSL:1m;

  ssl_session_timeout 5m;

  ssl_client_certificate /etc/nginx/ssl/COMODOHigh-AssuranceSecureServerCA.crt;  


  # Only allow GET, HEAD, and POST requests.

  if ($request_method !~ ^(GET|HEAD|POST)$ ) {

    return 444;

  }


  location / {

    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;

    proxy_set_header Host $http_host;

    proxy_next_upstream error;

    proxy_pass http://domain;

    proxy_redirect off;


#    proxy_cache CACHE1;

#    proxy_cache_valid 200 302 10m;

#    proxy_cache_valid 404 1s;

#    proxy_cache_use_stale  error timeout invalid_header updating

#   http_500 http_502 http_503 http_504;


#    if ($request_uri ~* \.(ico|css|js|gif|jpe?g|png)$) {

#                        expires 72h;

#                        break;

#                }

  }

}


* COMODO 한국 사이트에서는 nginx용 설정 예제가 없다. 언제쯤 트렌드를 반영한 사용자 가이드를 만들 것인지...