bnoteHome玄箱OpenSSLで自己認証局と証明書の作成OpenSSLで自己認証局と証明書の作成まず、OpenSSLがインストールされているとして進めます。本来、信頼のある認証局に認証してもらいますが今回は、自分で認証するための自己認証局を作成します。CAの作成は、/usr/local/ssl/CAに行います。ディレクトリを作成しておきます。OpenSSLがインストールされているディレクトリにあるmiscディレクトリにCA.shというスクリプトがあります。このスクリプトで認証局を構築することができます。CA.shをCAの作成場所にコピーします。/usr/local/ssl/CA構築する場所等を変更するためスクリプトを少し修正します。openssl.cnfの[CA_default]-dirも同様に修正します。-newcaを実行します。スクリプト内部では、ディレクトリの作成とコマンドが実行されます。3650コマンドを実行すると、以下のように入力が求められます。[]:【master@sample.jp:メールアドレス】これで/usr/local/CAに認証局の証明書(cacert.pem)と/usr/local/CA/privateに認証局の秘密鍵(cakey.pem)が作成されます。作成した証明書は、以下のコマンドで内容が確認できます。cacert.derを実行します。バイナリーにする方法にはBER,DER,PERなどがあるそうです。参考:デジタル証明書の形式PEMとはメールを暗号化するために規定されたものです。PEMにおいては暗号化情報をメールで送るためにこれをテキスト形式で表現します。この暗号化情報のテキスト形式のことをPEM形式と呼びます。PEM形式に変換したものが用いられるようです。base64でエンコードにより作られるこの形式で保存することができます。このテキスト形式のファイルはHTTPサーバなどでも、この形式のファイルを使う場合が多いようです。サーバの秘密鍵を作成するサーバの秘密鍵や証明書は、/usr/local/ssl/SERVERに作成することとします。1024コマンドを実行すると、以下のように入力を求められます。phrase:(パスフレーズ再入力)これで、サーバの秘密鍵の完成です。Apacheで使用する場合、Apacheを起動するたびにパスフレーズが必要となるので、パスフレーズを解除します。(セキュリティー上好ましくはないですね。servernopasskey.pemこれでパスフレーズの外れた秘密鍵が出来上がります。認証局への署名要求書(CSR,申請書)を作成する先ほど作成したサーバ鍵を基に認証局への署名要求書ファイルを作成します。認証局は、この署名要求書ファイルを基に署名付の証明書を作成してくれます。csr.pemコマンドを実行すると以下のように入力を求められます。[]:【master@sample.jp:メールアドレス】これで署名要求書の作成は終了です。次は、ここで作成した署名要求書を基にCAに署名して証明書を発行してもらいます。先ほど作成したサーバの署名要求書を基にCA(自己認証局)が署名し、サーバの証明書を作成します。/usr/local/ssl/SERVER/cert.pemこれでサーバ証明書の作成は終了です。2系はconfigureでenable-sslを指定してコンパイルしてください。1.3系はmod_sslを入手してコンパイルしてください。下記例は1.3系です。/usr/local/apache/confにあるhttpd.confを編集します。/usr/local/ssl/SERVER/servernopasskey.pemとりあえず、ApacheのSSLの設定は終了です。startsslでSSLを有効にしてApacheを起動します。