OsCommerce 에 SSL 을 적용하는 일은 비교적 간단하다. 크게 두 부분으로 나눌 수 있는데,
첫째, 아파치 conf 파일에(가상호스트도 마찬가지) 443번 포트에 귀를 기울이도록 설정 하고 해당 사이트에 대한 443번 접속 클라이언트 리다이렉션이나 DocumentRoot 경로를 넣어준다.
이때 아파치를 재시작 하는 과정에서 (98) 오류가 발생한다면 필경 443번 포트에 대한 지침이 상위 라인에서 이미 명시되어 사용자가 추가한 라인에서 충돌이 발생한 경우로 볼 수 있다.(아파치 error_log 를 보면 도움됨)
443번 관련 수정 내용을 모두 커멘트시켜놓거나 지우고 다시 아파치를 재시동하고 443 포트를 어디서 사용하고 있는지 확인해본다.
# netstat -pant | grep 443
httpd 가 사용중이라면 본인이 가상 호스트 어디선가 443 포트를 열어놓은 것이다.
필자는 httpd.conf 와는 별개로 가상호스트 부분만 따로 때어내어 httpd.include 로 관리하고 있기에 아래와 같이 httpd.include 의 상단, 443 포트에 대한 부분만 코멘트 시켜놓았다.
NameVirtualHost 192.168.xxx.xxx:80
#NameVirtualHost *:443
#Listen 443
#NameVirtualHost *:443
#Listen 443
그리고 해당 가상 호스트에 대한 https 설정은 그대로 유지하였다.
<VirtualHost *:443>
ServerAdmin root@localhost.com
DocumentRoot /www/mydomain/public_html/shop
ServerName www.mydomain.com
ErrorLog /www/mydomain/https_error_log
TransferLog /www/mydomain/logs/https_access_log
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/www.mydomain.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/www.mydomain.com.key
</VirtualHost>
ServerAdmin root@localhost.com
DocumentRoot /www/mydomain/public_html/shop
ServerName www.mydomain.com
ErrorLog /www/mydomain/https_error_log
TransferLog /www/mydomain/logs/https_access_log
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/www.mydomain.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/www.mydomain.com.key
</VirtualHost>
아파치를 재시작 한다.
뚤째, OsCommerce가 설치된 폴더(예: catalog) 내의 includes/configure.php 파일을 열어 HTTPS 관련 라인들을 아래와 같이 수정해 준다.
define('HTTP_SERVER', 'http://www.cameramia.com');
define('HTTPS_SERVER', 'https://www.cameramia.com');
define('ENABLE_SSL', true);
define('HTTPS_SERVER', 'https://www.cameramia.com');
define('ENABLE_SSL', true);
이렇게 하고 OsCommerce 에서 제품을 장바구니에 넣고 "Check Out"을 클릭해보자.
HTTPS:// 로 넘어가는 것과 우측 하단에 노란색 자물쇠가 표시되는 것를 확인한다.
물론 SSLEngine 을 가동하기 위해서는 OpenSSL 이 설치되어 있어야하겠고 SSL key와 cert 를 갖고있어야 한다.
이 부분은 여기를 참조하기 바란다.




