티스토리 뷰

반응형

기존에 아파치를 통해서 ssl인증을 통해 https설정을 하였다.

api서버를 띄운 후에 테스트를 하는 도중 크롬에서 api서버가 https가 아니기 때문에 보안상의 문제가 있다고 하며 값을 가져오지 못하는 이슈가 생겼다.

 

이를 해결하는 방법은 크롬 보안 설정을 하거나 api서버에도 ssl인증을 하는 방법이 있다.

실제 서비스를 생각한다면 당연히 후자의 방법으로 해야 문제가 없을 것으로 생각하여 삽질을 시작하였다.

 

아파치 virtualHost 세팅을 생각해 보았을 때 virtualHost 포트를 하나 생성해서 기존처럼 proxypass를 통해 api서버로 보내면 될 것으로 생각하고 virtualHost *:3001, proxypass localhost:3001 설정을 해보았으나 작동하지 않았다. 아파치의 에러메세지를 확인해보니 이미 사용중인 포트라고 나와있었다.

 

아파치 포트와 node의 포트는 별개의 포트로 생각을 하였는데 둘이 충돌하는 것으로 보아 같은 포트라는 것을 알게 되었고, virtualHost의 포트를 변경함으로써 해결하게 되었다.

 

Listen 80
Listen 444


NameVirtualHost *:80
<VirtualHost *:80>
    ServerName 서버아이피
    // http -> https로 리다이렉트
    Redirect / https://서버아이피
</VirtualHost>

# SSL Virtual host add
<VirtualHost *:443>
    ServerName 서버아이피
    # ErrorLog /www/home/logs/error_log
    SSLEngine on
    SSLCertificateFile /etc/ssl/certificate.crt
    SSLCertificateKeyFile /etc/ssl/private/private.key
    SSLCertificateChainFile /etc/ssl/ca_bundle.crt
    
    ProxyPass / http://localhost:3000/
</VirtualHost>

<VirtualHost *:444>
    ServerName 서버아이피 
    # ErrorLog /www/home/logs/error_log
    SSLEngine on
    SSLCertificateFile /etc/ssl/certificate.crt
    SSLCertificateKeyFile /etc/ssl/private/private.key
    SSLCertificateChainFile /etc/ssl/ca_bundle.crt

    ProxyPass / http://localhost:3001/
</VirtualHost>
반응형
댓글