<test123 웹 서버의 인증서 만들기>
1. 개인키 생성
openssl genrsa -des3 -out test123.key 2048
→ 패스워드 지정함
생성키 확인
openssl genrsa rsa -noout -text -in test123.key
2. 개인키를 가지고 인증요청서 생성
openssl req -new -key test123.key -out test123.csr
생성키 확인
openssl req -noout -text -in test123.csr
* 인증된 CA로부터 공개 키 서명을 받는다. CSR을 인증 기관에 보냄으로써 서명을 받을 수 있다.
CSR ( Certificate Signing Request )
: SSL 서버를 운영하는 회사의 정보를 암호화하여 인증기관으로 보내 인증서를 발급받게 하는 일종의 신청서
* 인증 기관에서 인증서를 발급 해준다. ( Root ca.crt , Server ca.crt, 도메인.crt 3개의 파일을 발급해준다)
<발급이 완료된 인증서로 인증서 변경 방법>
1. /opt/webapps/apache2/ssl-key/ 에 인증서 복사 ( ca.crt파일을 열어보고 판단해야한다)
2. 키에 패스워드가 들어있으면 아파치 구동시마다 물어보므로 패스워드 제거한다.
openssl rsa -in www.test123.co.kr.key -out www.test123.co.kr_nopw.key
→ 개인키 패스워드 입력함
→ 패스워드 제거된 개인키 생성됨 (www.test123.co.kr_nopw.key)
3. 아파치 재시작
<vhost에 설정하는 방법>
<VirtualHost *> // 일반 vhost
ServerAdmin system@test123.co.kr
DocumentRoot /home/test123/www.test123.co.kr
ServerName test.123.co.kr
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
CBandLimit 10G
CBandPeriod 1D
</VirtualHost>
<IfDefine SSL> // ssl.conf에 설정하지 않고 vhost에 설정하는 경우에 <IfDefine> 씀
ServerAdmin system@test123.co.kr
DocumentRoot /home/test123/www.test123.co.kr
ServerName www.test123.co.kr
ServerAlias test123.co.kr
SSLEngine on
SSLCertificateFile /opt/webapps/apache2/ssl-key/www.test123.co.kr.crt (인증서저장경로)
SSLCertificateKeyFile /opt/webapps/apache2/ssl-key/www.test123.co.kr_nopw.key (개인키저장경로)
SSLCertificateChainFile /opt/webapps/apache2/ssl-key/www.test123.co.kr_ca.crt
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</VirtualHost>
</IfDefine>
<ssl.conf에 설정하는 방법>
<VirtualHost *:443>
DocumentRoot "/home/test123/www.test123.co.kr/"
ServerName www.test123.co.kr
ServerAlias test123.co.kr
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+<wbr />RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/httpd/conf/ssl-key/www.test123.co.kr.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl-key/www.test123.co.kr.key
<Files ~ ".(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
</VirtualHost>