クライアント証明書作成

事前に RaspberryPi/証明書/環境構築 を実施してください。 ★基本的にサーバー証明書の生成と同じですが、  最後に、クライアント証明書を利用するための、pkcs12 形式のファイルを生成します。

秘密鍵生成

openssl genrsa -sha256 -out private/privkey.pem 2048
INPUT-
OUTPUTprivate/privkey.pem

オプションの詳細については、下記コマンドで確認ください。

openssl genrsa --help

CSR生成

openssl req -new -config conf/openssl.cnf \
  -key private/privkey.pem                \
  -days 730                               \
  -sha256                                 \
  "/C=JP/O=Ehobby/CN=ehobby.jp"           \
  -out request.csr
INPUTprivate/privkey.pem
OUTPUTrequest.csr

※CNには、ドメイン名を指定します。

オプションの詳細については、下記コマンドで確認ください。

openssl req --help

署名(以下は、認証局での作業となります。)

  1. 設定ファイルを生成する。 クライアント証明書署名のための設定ファイルを参照
  2. 署名する
    openssl ca -config conf/openssl.cnf \
      -extfile conf/openssl_client.cnf  \
      -extensions sign_client           \
      -md sha256                        \
      -policy policy_match              \
      -days 730                         \
      -out client.pem                   \
      -infiles request.csr
  3. DER形式ファイルを生成する。(PEM->DER)
    openssl x509 -inform pem -in client.pem          \
      -outform der -out client.crt
INPUTrequest.csr
OUTPUTclient.pem , client.crt

オプションの詳細については、下記コマンドを確認ください。

openssl ca --help

pkcs12 ファイル生成

openssl pkcs12 -export             \
  -in client.pem                   \
  -inkey private/privkey.pem       \
  -out client.p12                  \
  -name "<任意の名前>"

クライアント認証サーバー用ファイルの作成と設定

  1. クライアント証明書に署名した認証局が、中間認証局の場合、上位認証局の証明書を連結したファイルを作成します。
    cat rootca.pem ca.pem > chain.pem
  2. Apacheの場合、以下の設定をします。
    SSLCACertificateFile /var/lib/ssl/ca/chain.pem       $ <- 認証局の証明書ファイル
    SSLCARevocationFile  /var/lib/ca/crl/latestcrl.crl   # <- CRLのファイルパス
    <Directory 【クライアント認証が必要なパス】>
      SSLRequreSSL
      SSLVerifyClient require
      SSLVerifyDepth  10
    </Directory>

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS