2012年11月20日火曜日

クライアント証明書の発行


まずopensslの設定をクライアント証明書発行用に修正します。
# diff -U0 /System/Library/OpenSSL/openssl.cnf.org /System/Library/OpenSSL/openssl.cnf
--- /System/Library/OpenSSL/openssl.cnf.org
+++ /System/Library/OpenSSL/openssl.cnf
@@ -101 +101 @@
-default_bits = 1024
+default_bits = 2048
@@ -172 +172 @@
-nsCertType = server
+# nsCertType = server
@@ -178 +178 @@
-# nsCertType = client, email
+nsCertType = client, email

次にクライアント証明書のbackup用ディレクトリを作成します。revokeする時に必要になります。
# mkdir demoCA/certs/test1
# mkdir demoCA/certs/test2
# mkdir demoCA/certs/test3

次に各クライアント証明書の作成です。
# /System/Library/OpenSSL/misc/CA.sh -newreq
pass phraseは個別に設定して下さい。
countryName,stateOrProvinceName,LocalNameはJP,Tokyo,など適当に。
OrganizationNameはhogehoge Server
Organization Unit Nameは後々のために制御先のサーバー名を入れておきます。ここではcontrol1としておきます。
Common Nameはあとで配信先が区別できる名前をつけます。先ほどのdirectory名と同じが無難かと。
Emailは端末の管理者のアドレス。
extraは空。

出来上がった証明書をPrivateCAで認証します。

# /System/Library/OpenSSL/misc/CA.sh -sign

PrivateCAのpass phraseを入れます。
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

ブラウザ用にクライアント証明書をpkcs12形式で作成

# openssl pkcs12 -export -inkey newkey.pem -in newcert.pem -certfile ./demoCA/cacert.pem -out test1.p12

先ほどのクライアント証明書用のpass phrase、配信した時に入力するpass phraseを2回入力します。

出来上がったクライアント証明書一式をbackup

# mv new* demoCA/certs/test1
# mv test1.p12 demoCA/cverts/test1

demoCA/cacert.der, demoCA/certs/test1/test1.p12の2つのファイルを端末にコピーします。
iPhoneの場合はメール等に添付して送信し、iPhoneで2つのファイルを選択することでinstallできます。
installされた証明書は 設定 -> 一般 -> プロファイル から確認できます。

以上を必要な数分繰り返します。

0 件のコメント:

コメントを投稿