#navi2(RaspberryPi,toc,prev,next)
----
#contents
----
* 証明書の生成 [#r3d7f862]

** 証明書の概要 [#e674d494]
T.B.D. 
書きかけ、この部分はまだ正確ではありません。
T.B.D. 概要部分は書きかけです。。。m(__)m


*** サーバー証明書 [#pf714c99]
 +-----------------+
 |ルート認証局(CA) |
 +-----------------+
     ↓ルート認証局の秘密鍵を用いて署名
 +-----------------+
 |中間認証局(CA)   |
 +-----------------+
     ↓中間認証局の秘密鍵を用いて署名
 +-----------------+
 |サーバー証明書   |
 +-----------------+
 
 Webサーバー               Webブラウザ
 +---------------+        +---------------------------------+
 |ルート証明書   |        |ルート証明書 (信頼している証明書)|
 +---------------+        +---------------------------------+
 |中間証明書     |
 +---------------+
 |サーバー証明書 |
 +---------------+
 +---------------+
 |サーバー秘密鍵 |
 +---------------+

** openssl のインストール [#xc54fef7]
 aptitude install openssl

** ルート証明書(CA)+秘密鍵作成 [#ufb91ec7]
+openssl.conf ファイルをコピーする。
 $ cd [任意のディレクトリ]
 $ mkdir RootCA
 $ mkdir RootCA/{certs,crl,newcerts,private}
 $ chmod 700 RootCA/private
 $ touch RootCA/index.txt
 $ cp /etc/ssl/openssl.conf ./openssl_rootca.cnf
+openssl_rootca.conf の以下を修正
 [ CA_default ]
 
 #*dir           = ./demoCA              # Where everything is kept
 dir             = ./RootCA              # Where everything is kept
 certs           = $dir/certs            # Where the issued certs are kept
 crl_dir         = $dir/crl              # Where the issued crl are keptir        
 
 ~(省略)~
 [ policy_match ]
 # 署名のポリシー (-policy policy_match にて指定)
 # match    : CAと一致
 # supplied : 記述が必須
 # optiona  : オプション

 ~(省略)~
 [ usr_cert ]
 crlDistributionPoints = URI:<失効リストのURL>

 ~(省略)~
 [ v3_ca ]
 ~(省略)~
 # 署名時に -extensions v3_ca を指定することで、
 # ここに記載の失効リストのURL情報が付与される。
 crlDistributionPoints = URI:<失効リストのURL>
 ~(省略)~
 # サブジェクト代替名の設定
 subjectAltName=@alt_names
 
 [ alt_names ]
 # ドメイン名リストを追加していく。
 DNS.1 = <ドメイン名(例:ehobby.jp)>
 DNS.2 = <ドメイン名(例:www.ehobby.jp や, *.ehobby.jp など)>

 
+シリアル番号設定 (署名の際のシリアル番号となる)
 echo 01 > RootCA/serial
+ルート認証局(CA) の証明書と秘密鍵生成
 $ oepnssl req \
     -new \
     -x509 \
     -newkey rsa:2048 \
     -sha256 \
     -config ./openssl_rootca.cnf \
     -out RootCA/cacert.pem \
     -days <有効期間(日数)> \
     -keyout RootCA/private/cakey.pem \
     -subj "/C=JP/ST=<都道府県名>/O=<会社名>/OU=<部署名>/CN=<ドメイン名>"
  Enter PEM pass phrase: <任意のパスフレーズを入力>
  Verifying - Enter PEM pass phrase: <確認のため、再度パスフレーズを入力>
上記のコマンドにより、次のファイルが生成されます。
※権限が異なる場合は、chmod で修正してください。
|cacert.pem        |ルート認証局(CA)証明書   |権限:-rw-r--r-- (644)|
|private/cakey.pem |ルート認証局(CA)の秘密鍵 |権限:-rw------- (600)|
+証明書の確認
次のコマンドで証明書の内容を確認できます。
 openssl x509 -text -noout -in RootCA/cacert.pem
+pem 形式→der 形式変換 (ブラウザに取り込む場合などに利用)
 openssl x509 -inform pem -in RootCA/cacert.pem -outform der -out RootCA/cacert.der

|DER |Distinguished Encoding Rules |ASN.1のエンコード方式の一つ X.509 |
|PEM |Privacy Enhanced Mail        |Base64にてエンコードした形式      |

** 中間証明書(CA)+秘密鍵作成 [#ufb91ec7]

+openssl.conf ファイルをコピーする。
 # cd [任意のディレクトリ]
 # mkdir IntermediateCA
 # mkdir IntermediateCA/{certs,crl,newcerts,private}
 # chmod 700 IntermediateCA/private
 # touch IntermediateCA/index.txt
 # cp /etc/ssl/openssl.conf ./openssl_intermediateca.cnf
+openssl_intermediate.conf の以下を修正
 [ CA_default ]
 
 #*dir           = ./demoCA              # Where everything is kept
 dir             = ./IntermediateCA      # Where everything is kept
 certs           = $dir/certs            # Where the issued certs are kept
 crl_dir         = $dir/crl              # Where the issued crl are keptir        
 crl_dir         = $dir/crl              # Where the issued crl are keptir 
 
 ~(省略)~
 [ usr_cert ]
 crlDistributionPoints = URI:<失効リストのURL>       
+シリアル番号設定 (署名の際のシリアル番号となる)
 echo 01 > IntermediateCA/serial
+ルート認証局(CA) の証明書と秘密鍵生成
 $ oepnssl req \
     -new \
     -newkey rsa:2048 \
     -sha256
     -config ./openssl_intermediateca.cnf \
     -out IntermediateCA/cacert_req.pem \
     -days <有効期間(日数)> \
     -keyout IntermediateCA/private/cakey.pem \
     -subj "/C=JP/ST=<都道府県名>/O=<会社名>/OU=<部署名>/CN=<ドメイン名>"
  Enter PEM pass phrase: <任意のパスフレーズを入力>
  Verifying - Enter PEM pass phrase: <確認のため、再度パスフレーズを入力>
上記のコマンドにより、次のファイルが生成されます。
|cacert_req.pem    |中間認証局(CA)証明書の署名要求ファイル |権限:-rw-r--r-- |
|private/cakey.pem |中間認証局(CA)の秘密鍵                 |権限:-rw------- |
+ルート認証局による署名
++ルート認証局の cacert_req/ 配下に、cacert_req.pem を <ドメイン名>-cacert_req.pem ファイルとして配置する。
++ルート認証局のにて以下を実施する。
 openssl ca \
     -config ./openssl_rootca.cnf  \
     -policy policy_match \
     -extensions v3_ca \
     -days <有効期間(日数)> \
     -out cacert_req/<ドメイン名>-cacert.pem
     -infiles cacert_req/<ドメイン名>-cacert_req.pem
++署名の確認
 openssl verify -purpose sslclient -CAfile RootCA/cacert.pem \
 cacert_req/<ドメイン名>-cacert.pem
+署名後のファイルを中間認証局の IntermediateCA 配下に置く。


----
#navi2(RaspberryPi,toc,prev,next)


トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS