#navi2(RaspberryPi/証明書,toc,prev,next)
----
#contents
----
* クライアント証明書作成 [#i9843829]
事前に [[RaspberryPi/証明書/環境構築]] を実施してください。
★基本的にサーバー証明書の生成と同じですが、
 最後に、クライアント証明書を利用するための、pkcs12 形式のファイルを生成します。


** 秘密鍵生成 [#h5dd2b3d]
 openssl genrsa -sha256 -out private/privkey.pem 2048

|INPUT  | -                  |
|OUTPUT |private/privkey.pem |

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

** CSR生成 [#c538fb1c]
 openssl req -new -config conf/openssl.cnf \
   -key private/privkey.pem                \
   -days 730                               \
   -sha256                                 \
   "/C=JP/O=Ehobby/CN=ehobby.jp"           \
   -out request.csr

|INPUT  |private/privkey.pem |
|OUTPUT |request.csr         |

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

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

** 署名(以下は、認証局での作業となります。) [#db680a30]
+設定ファイルを生成する。
[[クライアント証明書署名のための設定ファイル>https://ehobby.jp/~kei-n/wiki/edit/index.php?RaspberryPi%2F%E8%A8%BC%E6%98%8E%E6%9B%B8%2F%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89#sa0edb4f]]を参照
+署名する
 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
+DER形式ファイルを生成する。(PEM->DER)
 openssl x509 -inform pem -in client.pem          \
   -outform der -out client.crt

|INPUT  |request.csr  |
|OUTPUT |client.pem , client.crt           |

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

** pkcs12 ファイル生成 [#g18e68ee]
 openssl pkcs12 -export             \
   -in client.pem                   \
   -inkey private/privkey.pem       \
   -out client.p12                  \
   -name "<任意の名前>"

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

----
#navi2(RaspberryPi/証明書,toc,prev,next)
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS