참고 도서 |
hagbard@fnord:~/certs$ /usr/local/ssl/misc/CA.pl -newca CA certificate filename (or enter to create) Making CA certificate ... Using configuration from /usr/local/ssl/openssl.cnf Generating a 1024 bit RSA private key ...............++++++ ......................................++++++ writing new private key to "./demoCA/private/cakey.pem" Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ".", the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:California Locality Name (eg, city) []:Sebastopol Organization Name (eg, company) [Internet Widgits Pty Ltd]:Illuminatus Enterprises, Ltd Organizational Unit Name (eg, section) []:Administration Common Name (eg, YOUR name) []:Hagbard Celine Email Address []:hagbardceline1723@yahoo.com축하한다! 이제, 인증서 발행기관 소유주가 되었다. 다음을 살펴보자.
hagbard@fnord:~/certs$ ls demoCA/ hagbard@fnord:~/certs$ cd demoCA/ hagbard@fnord:~/certs/demoCA$ ls -l total 24 -rw-r--r-- 1 rob users 1407 Sep 8 14:12 cacert.pem drwxr-xr-x 2 rob users 4096 Sep 8 14:12 certs/ drwxr-xr-x 2 rob users 4096 Sep 8 14:12 crl/ -rw-r--r-- 1 rob users 0 Sep 8 14:12 index.txt drwxr-xr-x 2 rob users 4096 Sep 8 14:12 newcerts/ drwxr-xr-x 2 rob users 4096 Sep 8 14:12 private/ -rw-r--r-- 1 rob users 3 Sep 8 14:12 serial새 인증서 발행 기관의 공개키는 cacert.pem에, 개인키는 private/cakey.pem에 담겨있다. 이제 이 개인키를 사용해서 여타 SSL 인증서에 서명할 수 있다.
hagbard@fnord:~/certs$ openssl ca -policy policy_anything \ -out propaganda.discordia.eris.crt \ -infiles propaganda.discordia.eris.csr Using configuration from /usr/local/ssl/openssl.cnf Enter PEM pass phrase: Check that the request matches the signature Signature ok The Subjects Distinguished Name is as follows countryName :PRINTABLE:"US" stateOrProvinceName :PRINTABLE:"Texas" localityName :PRINTABLE:"Mad Dog" organizationName :PRINTABLE:"Discordia, Inc." organizationalUnitName:PRINTABLE:"Operations" commonName :PRINTABLE:"propaganda.discordia.eris" emailAddress :IA5STRING:"hail@discordia.eris" Certificate is to be certified until Sep 8 22:49:26 2003 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated이제 아파치 + mod_ssl(또는 Apache-ssl)에서 .crt와 .key를 사용하기 위해 평상시와 마찬가지로 설치한다. 아마도 다음과 같을 것이다.
SSLCertificateFile /usr/local/apache/conf/ssl.crt/propaganda.discordia.eris.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/propaganda.discordia.eris.key정말 재미있지 않은가? 클라이언트가 실제로 https://propaganda.discordia.eris/로 접속하면 무슨 일이 일어날까? SSL 인증서를 서명한 인증 기관을 승인할 수 없다면서 에러를 내지 않을까? 당연히 에러를 낸다. 물론 CA의 공개키를 클라이언트의 브라우저에 미리 설치했다면 에러를 내지 않는다. CA 공개키를 설치하려면 필자의 다음 기사를 기대하기 바란다.(기다리는 것이 싫다면, 필자가 쓴 책에서 Hack #95를 참고하기 바란다.)
이전 글 : 리눅스 임베디드 & 시스템 프로그래밍
다음 글 : 자신의 CA를 클라이언트 브라우저로 배포하기
최신 콘텐츠