2018-11-23
해당 방법은 APACHE에서 openssl이 아닌 특정 기업에서 발급된 ssl 인증서를 적용하는 방법이다
방법은 아주 간단하다 하지만 가끔씩 하다보니, 몇번 위치를 까먹고 결국 포스팅 한다.. ㅡ/.ㅡ

일단 여기에서 소개하는 방법은, ssl에 필요한 .srt이나 .key 와 같은 파일들이 전부 있다는 가정하에서 시작하겠다.

우선 httpd.conf 파일에서 아래와 같이 httpd-ssl.conf를 include 해주는 부분이있다면, 해당 파일로 들어가서 하면 된다.
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

httpd-ssl.conf 파일에 들어가서 아래의 값들을 셋팅해주면 된다.
아래 예제는 메인 페이지의 위치가 C:/xampp/htdocs,
도메인은 b1ix.net 이라고 할때를 예제로 든 것이다.
Listen 443

SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on
SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog  builtin
SSLSessionCache "shmcb:C:/xampp/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost _default_:443>

DocumentRoot "C:/xampp/htdocs"
ServerName b1ix.net:443
ServerAdmin b1ix@b1ix.net
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"

SSLEngine on

SSLCertificateFile "conf/ssl_files/b1ix.crt.pem"
SSLCertificateKeyFile "conf/ssl_files/b1ix.key.pem"
SSLCertificateChainFile "conf/ssl_files/RootChain/caBundle.pem"
SSLCACertificateFile "conf/ssl_files/RootChain/caRoot.crt"

.
.
.
</VirtualHost>
위의 코드에서 SSLCertificateFile 에는 .crt 파일을
SSLCertificateKeyFile 부분에는 .key 파일을 제대로 넣어 놓으면 보통은 문제 없이 ssl이 적용 된다.

그리고 소스를 보면 알겠지만,
httpd.conf 파일에, 위처럼 잘 셋팅되어 있는 httpd-ssl.conf와 같은 파일이 include되어 있는 상태가 아니라면,
직접 ssl셋팅 파일을 만들어서 include 해도 되고, 직접 httpd.conf 파일 내에 적어도 된다

위 소스중 중요한 부분은, Listen 443 부분과 VirtualHost 태그 안쪽 부분이라서, 이부분만 제대로 되어 있으면 ssl이 적용 된다.