● 자기의 CA섹션을 openssl.cnf에 추가한다.
OpenSSL설정파일, openssl.cnf파일의 [ CA_default ]를 참고로 자기의 CA섹션을 openssl.cnf에 추가한다. 이름은 적당히 붙인다.
ca_my여도 상관없다.
또, openssl.cnf파일을 복사한 다음, 표준인 [ CA_default ] 를 편집해도 상관없다.
● 자기 인증국 키를 작성한다.
자기 인증국(local CA)의 키를 작성한다. 이것은 서버 키를 작성하는 순서와 마찬가지이다.
자기인증국 키 작성
root@shell# openssl req -new -x509 -keyout local-ca-key.pem -out local-ca-cert.pem -days 10000
local CA용으로 추가한 이름이 ca_my인 경우, -name ca_my옵션을 추가한다.
여기에서 작성한 키 파일이름을 openssl.cnf파일에 지정해 둔다.
CA정의 섹션에서는 dir, certificate, private_key, serial, database 변수에 주의해야한다.
기본값은 openssl.cnf에 기재되어 있다.
OpenSSL에는 인증국 작성 작업을 한번에 수행하는( 키를 작성하거나 디렉토리나 파일을 작성하거나 한다. ) CA.sh 스크립트가 부속되어 있다.
CA.sh스크립트는 디렉토리명등이 고정되어 있기때문에 편한대로 맞춰서 편집해서 실행하면 될 듯 싶다.
편집할 때는 openssl.cnf의 local CA용 섹션 기술과 맞춰놓도록 한다.
예> root@shell# bash CA.sh -newca
2009년 10월 15일 목요일
2009년 10월 8일 목요일
MySQL 보안 - SSL통신
MySQL의 서버와 클라이언트 사이의 통신을 SSL암호화하는 것이 가능하다.
SSL통신을 실행하려면 서버와 클라이언트 양쪽에 SSL을 구성할 필요가 있다.
SSL구성의 확인
mysql>SHOW VARIABLES LIKE 'have_openssl';
결과가 YES 또는 DISABLED이면 서버에 SSL구성되어 있는 것이다. DISABLED인 경우 SSL은 구성되어있지만 ssl옵션을 붙여서 서버가 기동되지 않았다라는 뜻이다. NO인 경우는 SSL가 포함되어있지 않으므로 소스에서 부터 MySQL을 빌드할 필요가 있다.
SSL구성
configure옵션에서는 --with-ssl를 지정한다.
다만, --with-openssl-includes, --with-openssl-libs, --with-yassl옵션은 5.1.11-beta에서 폐지되었으므로 주의해야한다.
SSL의 구성
shell$ ./configure --with-ssl [=OpenSSL 인스톨 디렉토리]
OpenSSL인스톨 디렉토리를 지정하면 지정된 디렉토리에 있는 OpenSSL라이브러리를 사용한다.
디렉토리지정을 생략하면 소스 부속의 yaSSL(extra/yassl/)를 사용한다.
현재 OpenSSL을 사용할 경우 핸드쉐이크할 때 miss가 적다고 한다.
디렉토리를 지정해서 OpenSSL을 사용하는 것이 좋을 듯 싶다.
피드 구독하기:
글 (Atom)
