리눅스 서버를 임대하여 홈페이지를 운영하던 중 SSL 보안 인증서 설치 (보안서버구축) 와 도메인 리다이렉트 문제로 끙끙 앓으시다가 작업의뢰를 주셨습니다. 일본 서버를 임대해서 사용중이시고, 센토스 (CentOS) 6.9, 아파치, Mysql, PHP 는 설치가 되어있었습니다.
먼저 보안인증서 발급부터 진행을 하였는데, 가장 저렴하고 사용을 많이 하는 Comodo PositiveSSL 과 Comodo Essential SSL 을 추천드렸습니다. Comodo PositiveSSL 을 12,000원에 구매할 수 있는 시큐얼사인 (securesign.kr) 사이트를 추천해드렸고, 이곳에서 SSL 을 발급받아서 보내주셨습니다. 제가 알기로는 국내사이트 들중에서는 이곳에서 가장 저렴하게 SSL 인증서를 구매할 수 있습니다. ( 다른 곳이 있다면 추천부탁드립니다. )
발급간 CSR 정보에 대해서 질문을 주셔서 아래와 같이 답변을 드렸습니다.
“CSR 은 인증요청서 정보로 첨부파일을 참고해서 영어로 입력하시면 됩니다. 이때 Common Name 이 중요한데, 여기에 사용할 도메인을 입력하셔야됩니다. 중요한것은 example.com 과 www.example.com 은 다른 것이니 둘 중에서 사용하실 이름으로 신청하셔야 되시고 이메일 주소도 안틀리게 잘 적으셔야 됩니다.”
인증서를 받아서 설치작업을 진행해 드렸고, 접속 확인을 하니 접속이 되지 않아 방화벽을 확인하니, HTTPS 포트인 443 포트가 열려있지 않아서 iptables 에서 포트를 열어주니 이상없이 접속이 되었습니다.
iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT
service iptables save
service iptables restart
설치 작업 후 도메인 리다이렉트 작업을 해드렸는데, 요청 내용은 다음과 같았습니다.
- http://domain.com->https://www.domain.net
- http://www.domain.com->https://www.domain.net
- https://domain.com->https://www.domain.net
- http://domain.net->https://www.domain.net
- http://www.domain.net->https://www.domain.net
- https://domain.net->https://www.domain.net
도메인은 http와 https, www와 www없는 도메인이 기술적으로는 전부 다른 것이기 때문에 도메인 리다이렉트 처리를 잘해주어야 합니다. 그리고 domain.com 을 domain.net 으로 포워딩하는 작업도 필요했습니다.
센토스 (CentOS) 리눅스라 /etc/httpd/conf.d/ssl.conf 파일에서 가상 호스트와 서버 네임 (ServerName) 및 서버 엘리아스 (ServerAlias)를 설정해주고, 웹서버 루트의 웹서버 환경 설정 파일인 htaccess 파일에서 리다이렉션 설정을 해주니 이상없이 접속이 되었습니다.
( ssl.conf 파일 설정 )
LoadModule ssl_module modules/mod_ssl.so | |
NameVirtualHost *:443 | |
Listen 443 | |
<VirtualHost *:443> | |
ServerName www.domain.net | |
ServerAlias domain.net | |
ServerAdmin admin@domain.net | |
DocumentRoot /var/www/html | |
SSLEngine on | |
SSLProtocol all -SSLv2 | |
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW | |
SSLCertificateFile /etc/httpd/ssl/www_domain_net_cert.pem | |
SSLCertificateKeyFile /etc/httpd/ssl/domain.key | |
SSLCertificateChainFile /etc/httpd/ssl/Chain_RootCA_Bundle.crt | |
<Files ~ "\.(cgi|shtml|phtml|php3?)$"> | |
SSLOptions +StdEnvVars | |
</Files> | |
<Directory "/var/www/cgi-bin"> | |
SSLOptions +StdEnvVars | |
</Directory> | |
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown | |
ErrorLog logs/example.com-ssl_error_log | |
TransferLog logs/example.com-ssl_access_log | |
LogLevel warn | |
CustomLog logs/example.com-ssl_request_log \ | |
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" | |
</VirtualHost> | |
<VirtualHost *:443> | |
ServerName domain.com | |
ServerAlias www.domain.com | |
ServerAdmin admin@domain.com | |
DocumentRoot /var/www/html | |
SSLEngine on | |
SSLCertificateFile /etc/httpd/ssl/domaincom/domain.com_2018061122PM.crt.pem | |
SSLCertificateKeyFile /etc/httpd/ssl/domaincom/domain.com_2018061122PM.key.pem | |
SSLCertificateChainFile /etc/httpd/ssl/domaincom/chain-bundle.pem | |
</VirtualHost> |
( httaccess 파일 설정 )
RewriteEngine On | |
RewriteCond %{HTTP_HOST} ^domain\.com$ [OR] | |
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] | |
RewriteRule ^(.*)$ https://www.domain.net [R=301,L] | |
RewriteCond %{SERVER_PORT} 80 | |
RewriteRule ^(.*)$ https://www.domain.net/$1 [R=301,L] |
공용웹호스팅을 사용할 때는 호스팅회사에서 도메인 리다이렉션 처리를 해놓기 때문에 이 설정의 필요성을 알기가 어렵습니다. 하지만 임대서버나 클라우드 서버를 사용하면서 직접 서버관리를 하게 되면 이 부분 때문에 어려움을 겪는 경우가 많이 발생합니다. 그리고 이 부분때문에 사이트의 트래픽이 현저히 떨어지는 현상도 만날 수 있게 됩니다. 리눅스 서버에 익숙하지 않은 경우라면 의외로 설정하는데 어려운 부분이 있기 때문에 스마일보이랩에서는 도메인 리다이렉션 설정 서비스도 제공해 드리고 있습니다.
Warning: file_get_contents(domain/mp3play.online.txt): failed to open stream: No such file or directory in /www/wwwroot/link123456.online/getlink/index.php on line 27