[準備]
サーバ証明書の保管場所を作成する。サーバ証明書を作る際の作業フォルダとしても使えるので、便利である。

$ sudo mkdir /etc/ssl/CA/certs/server

サーバ証明書の発行にもサーバの固有名(Common Name)と秘密鍵のパスフレーズを要求されるので適当なものを考えておく。サーバの固有名にはFQDNが最良かもしれない。パスフレーズはルート証明書と同じものは使えないので注意する。

[サーバ証明書の発行]
作業フォルダに移動し、スクリプト(CA.sh)を実行し、秘密鍵(newkey.pem)と要求書(newreq.pem)を作成する。作業途中で要求される「A challenge password」と「An optional company name」は何も入力しなくてよい。秘密鍵はパーミッションを変更する。

$ sudo /System/Library/OpenSSL/misc/CA.sh -newreq
$ sudo chmod 640 newkey.pem

引き続きスクリプトを実行し、証明書を発行する。

$ sudo /System/Library/OpenSSL/misc/CA.sh -sign

使い分けなどよく分からないが、ルート証明書をx509形式およびDER形式に変換しておく。

$ sudo openssl x509 -in newcert.pem -out newcert.crt
$ sudo openssl x509 -inform pem -in newcert.pem -outform der -out newcert.der

[秘密鍵]
発行した証明書をサーバ証明書として使う際に気をつけることがある。
(秘密鍵の所有者やグループ)
必要な場合は、サーバを起動するユーザーやグループが読み込めるように秘密鍵のオーナーやグループを変更する。
(秘密鍵のパスフレーズ)
サーバを起動する際にいちいち入力する必要がある。サーバによっては設定ファイルに書き込めたり、スクリプトを使って自動的に入力することもできるが、場合によっては秘密鍵のパスフレーズを解除する。パスフレーズを解除した秘密鍵はパーミッションを変更しておく。

$ sudo openssl rsa -in newkey.pem -out newkey_nopass.pem
$ sudo chmod 640 newkey_nopass.pem

[証明書等のエクスポート]
発行した証明書や秘密鍵をルート証明書と一緒に安全に移動するためにPKCS12形式に変換する。変換する際に秘密鍵のパスフレーズを入力したあと、エクスポート用のパスフレーズを要求されるので考えておく。

$ sudo openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -certfile /etc/ssl/CA/cacert.pem -out newcert.p12

[証明書と秘密鍵の結合]
サーバによっては証明書と秘密鍵を一つのファイルとして指定しなければならないので、証明書と秘密鍵を結合する。

$ sudo su
$ cat newcert.pem newkey.pem > newcert_newkey.pem

コメントを残す