So-net無料ブログ作成
検索選択

xca(X Certificate and key management)を使って自己認証局を作ってみよう[Vol.3] [xca]

今回はxcaでWebサーバのサーバ証明書を発行します。WebサーバにはWindows版のApache2.2.21を使います。SSLが可能なhttpd-2.2.21-win32-x86-openssl-0.9.8r.msiをここからダウンロードします。

1.Apache2.2.21のインストール
 httpd-2.2.21-win32-x86-openssl-0.9.8r.msiをダブルクリックで起動します。
xca43.PNG

 Nextをクリックします。
xca44.PNG

 I accept…にチェックを入れ、Nextをクリックします。
xca45.PNG

 Nextをクリックします。
xca46.PNG

 ドメイン、サーバ名(FQDN)、メールアドレスを入力します。必要に応じてhostsファイルにIPアドレスとホスト名を記述します。
xca47.PNG

 Nextをクリックします。
xca48.PNG

 Nextをクリックします。
xca49.PNG

 Installをクリックします。
xca50.PNG

 Finishをクリックします。
xca51.PNG

 Internet Explorerでhttpアクセスを行います。It works!と表示されればOKです。
xca52.PNG

2.サーバ証明書の発行
 SSL版Apacheをインストールすると、opensslがインストールされます。opensslで秘密鍵の作成とCSRの作成を行います。
 (1)秘密鍵の作成
  コマンドプロンプトから以下のコマンドで秘密鍵を作成します。
  cd C:\Program Files\Apache Software Foundation\Apache2.2\bin
  openssl genrsa -des3 -out "C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.key" 1024
  Enter pass phrase for C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.key:
  Verifying - Enter pass phrase for C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.key:

 (2)CSRの作成
  openssl req -config "C:\Program Files\Apache Software Foundation\Apache2.2\conf\openssl.cnf" -new -key "C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.key" -out "C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.csr"
  Enter pass phrase for C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.key:
  Country Name (2 letter code) [AU]:JP
  State or Province Name (full name) [Some-State]:Tokyo
  Locality Name (eg, city) []:
  Organization Name (eg, company) [Internet Widgits Pty Ltd]:Home
  Organizational Unit Name (eg, section) []:WWW
  Common Name (eg, YOUR name) []:wwwsv.home.localdomain
  Email Address []:

  Please enter the following 'extra' attributes
  to be sent with your certificate request
  A challenge password []:
  An optional company name []:

 (3)パスフレーズ解除(Apache自動起動のため)
  openssl rsa -in "C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.key" -out "C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv_nopass.key"
  Enter pass phrase for C:\Program Files\Apache Software Foundation\Apache2.2\conf\wwwsv.key:
  writing RSA key

 (4)xcaでサーバ証明書の発行
  Open DataBaseでデータベースをオープンします。
xca53.PNG

  Private-Root-CAを選びます。
xca54.PNG

  Private-Root-CAのDBのパスワードを入力します。
xca55.PNG

  Certicate singning requestsのタブをクリックし、右ペインのInportをクリックします。
xca56.PNG

  先ほど作成したCSR(Apacheのインストールフォルダのconfフォルダ)を選びます。
xca57.PNG

  OKをクリックします。
xca58.PNG

  Certificatesタブをクリックし、New Certificateをクリックします。
xca59.PNG

  Signing requestに作成したCSRを選び、SigningでPrivate-Root-CAを選び、Templateで[default]HTTPS_serverを選んで、Apply allをクリックします。
xca60.PNG

  Extensionsタブをクリックし、Time rangeで3 Yearsに設定して、ApplyをクリックしてからOKをクリックします。
xca61.PNG

  Private-Root-CAのパスワードを入力します。
xca62.PNG

  OKをクリックします。
xca63.PNG

  発行したサーバ証明書を選び、Exportをクリックします。
xca64.PNG

  Apacheのconfフォルダに出力します。
xca65.PNG

  CAのルート証明書を選び、Exportをクリックします。
xca66.PNG

  Apacheのconfフォルダに出力します。
xca67.PNG

  confフォルダにサーバ証明書、秘密鍵、CAのルート証明書があることを確認します。(ルート証明書は使いません。)
xca68.PNG

3.ApacheのSSL設定
 confフォルダにあるhttpd.conf(C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf)を編集します。
 #LoadModule ssl_module modules/mod_ssl.so
 ↓
 LoadModule ssl_module modules/mod_ssl.so

 #Include conf/extra/httpd-ssl.conf
 ↓
 Include conf/extra/httpd-ssl.conf

 confフォルダの中のextraフォルダのhttpd-ssl.conf(C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-ssl.conf)を編集します。
 SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.crt"
 ↓
 SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/wwwsv.home.localdomain.crt"

 SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.key"
 ↓
 SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/wwwsv_nopass.key"

 Stopをクリックして、Apacheを停止します。
xca69.PNG

 Startをクリックして、Apacheを開始します。
xca70.PNG

 Apacheが起動していることを確認します。
xca71.PNG

 Internet Explorerからhttpsでアクセスします。警告無く、It works!と表示されればOKです。
xca72.PNG

xcaを使えば、簡単にサーバ証明書が発行できますね。

次回もお楽しみに!!