「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>暗号化]] * 目次 [#k18e8d3f] #contents *概要 [#e023d9a6] -「デジタル署名」の検証は、~ 「送信側の公開鍵」を拠り所にしていると言えるが、~ 提供される「送信側の公開鍵」の出所が、正規の出所か、~ 検証できない(場合がある)という問題がある。 -このため、この問題を解決するための、「認証局」と呼ばれる、~ 信頼のおける第三者が発行した「デジタル証明書」を使用して~ 「送信側の公開鍵」が信頼できるものであるかを検証する機構がある。 -「デジタル証明書」は、このような方式により~ 成り立っているので、その信頼性は「認証局」の信頼性に依存する。 ※ [[PKI(公開鍵暗号基盤)]] *詳細 [#i8a498c2] 「デジタル証明書」は -「公開鍵が誰の公開鍵であるか?」を証明しているもので、 -署名付きのメッセージと公開鍵を格納してある。 -従って、証明書 = 署名付き公開鍵と言っても良い。 **ファイル構造 [#jddb1297] -X.509という規格で決まっているため、X.509証明書とも呼ぶ。 -X.509の第1版は、1988年7月3日に[[X.500>ディレクトリ サービス]]標準と関連して公開された。 -[[X.500>ディレクトリ サービス]]標準と関連するため、[[DN(識別名)>LDAPプロトコルでのディレクトリ・エントリ検索処理#l30bac77]]のルールなどは[[X.500>ディレクトリ サービス]]を踏襲している。 -証明書の構造 |#|内容|>|備考|h |1|フォーマットのバージョン情報|必須|| |2|シリアル番号|~|| |3|認証局が署名に利用した暗号アルゴリズムの識別情報|~|| |4|認証局の名前(X.500 識別名 (DN) )|~|証明書記載情報| |5|有効期間(開始 - 終了日時)|~|~| |6|証明対象の名前(X.500 識別名 (DN) )|~|~| |7|公開鍵の情報(暗号アルゴリズムの識別情報と公開鍵)|~|~| |8|認証局のユニークID|オプション|~| |9|証明対象のユニークID|~|~| |10|拡張領域|~|~| |11|証明書記載情報をハッシュ化して署名したディジタル署名|>|| >※ [[X.500 識別名 (DN) には、「CN=、O=」などが含まれる>LDAPプロトコルでのディレクトリ・エントリ検索処理#t271ef36]]。 -より、詳しくは、 --PKI関連技術に関するコンテンツ~ http://www.ipa.go.jp/security/pki/033.html **2つの証明書 [#ja5c8e1b] この「デジタル証明書」には以下のものがある。 ***認証局の自己(発行)証明書 [#afa84ce6] -[[cer形式の電子証明書>#qb0334b2]] -認証局が自身で発行した証明書。 -通常、事前にクライアントPCの[[証明書ストア(リポジトリ)>#dccdb7e5]]に配布されている。 ***証明書発行要求の送信側の証明書 [#vd8084e2] -[[cer形式の電子証明書>#qb0334b2]] or [[spc形式の電子証明書>#sc7510c3]]~ 送信側が認証局に[[証明書発行要求(CSR:Certificate Signing Request)>#sb23ba23]]によって発行してもらったもの。 -[[pfx形式の電子証明書>#sd119f77]]~ 上記に秘密鍵を同梱して、*.pfxにして、これをHTTPSにするWebサーバにインストールする。 **デジタル証明書に含まれる情報 [#ubbadfc4] これらの「デジタル証明書」には、以下の情報が含まれる。 ***認証局の自己(発行)証明書 [#s0105726] (認証局がクライアントPCの[[証明書ストア(リポジトリ)>#dccdb7e5]]に事前配布している)「認証局の自己(発行)証明書」 -「認証局のメッセージ( + 認証局の公開鍵)」(公開鍵と、公開鍵の情報) -「認証局によるデジタル署名」(本証明書のコンテンツを検証するための署名) ***証明書発行要求の送信側の証明書 [#w8bf8492] (送信側の[[CSR>#sb23ba23]]依頼によって認証局が送信側に発行した)~ 「証明書発行要求の送信側の証明書」 -「送信側の秘密鍵」(メッセージの署名に使用する) -「送信側のメッセージ( + 送信側の公開鍵)」(公開鍵と、公開鍵の情報) -「認証局によるデジタル署名」(本証明書のコンテンツを検証するための署名) ***メッセージ [#zc20238d] 証明書におけるメッセージとは、 -[[CSR>#sb23ba23]]に格納される、発行者や有効期限などの情報を指す。 -詳しくは、以下のページが参考になる。 --PKI関連技術に関するコンテンツ~ https://www.ipa.go.jp/security/pki/033.html ---3.3.4 識別名 ---3.3.5 X.509 証明書のプロファイル ---3.3.6 X.509証明書の拡張領域 **デジタル証明書の発行と利用 [#haef9f53] ***デジタル証明書の発行 [#c6a66502] #ref(CertificateIssuance.png,left,nowrap,デジタル証明書の発行) -送信側が認証局に[[CSR>#sb23ba23]]を依頼して発行して「証明書発行要求の送信側の証明書」を発行もらう。 -「認証局の自己(発行)証明書」は通常、事前にクライアントPCの[[証明書ストア(リポジトリ)>#dccdb7e5]]に配布されている。 -このため、「認証局の自己(発行)証明書」中の「認証局の公開鍵」を使用して、「証明書発行要求の送信側の証明書」を検証できる。 -ここでは送信側は、「証明書発行要求の送信側の証明書」(に含まれる「送信側のメッセージ・公開鍵」)が「認証局」により、 --信頼できるものであるとされていることが確認でき、 --以降、受信側が、送信側のメッセージ・署名を(安全に)検証できる。 ***デジタル証明書の利用 [#eea7c79b] 以下は、デジタル証明書を使用した送信側と受信側の通信。 #ref(UseOfCertificate.png,left,nowrap,デジタル証明書の利用) -送信側 --受信側に「証明書発行要求の送信側の証明書」を送付する。 --「送信側の秘密鍵」を使用してメッセージに署名を付与する。 --「メッセージ+署名」を受信側に送付する。 -受信側~ 送信側の公開鍵を使用して、「送信側のメッセージ+署名」を検証する。 --証明書の検証~ 「認証局の公開鍵」を使用して「証明書発行要求の送信側の証明書」を検証する。 --メッセージの検証~ 「送信側の公開鍵」を使用して、「送信側のメッセージ+署名」を検証する。 **秘密鍵付きの証明書の受け渡し [#cf97dd12] 他者(上記、上記の図の場合、受信側に該当する)に証明書を渡す場合は、秘密鍵は渡されない。~ 秘密鍵付きの証明書の受け渡しは、[[pfxファイル>#sd119f77]]のエクスポート・インポートなどで行なう。 **[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]と[[中間の認証局>PKI(公開鍵暗号基盤)#x5675f15]] [#s03d489a] ***仕組み [#xe611923] なお、「認証局」が「[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]」と「[[中間の認証局>PKI(公開鍵暗号基盤)#x5675f15]]」に分かれる場合は、次のようになる。 -「[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]の自己(発行)証明書」(ルート証明書):~ 「[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]のメッセージ(+[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]の公開鍵)」、「[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]によるデジタル署名」 >>>↓ 証明書の発行 & ↑ 検証 -「[[中間の認証局>PKI(公開鍵暗号基盤)#x5675f15]]の自己(発行)証明書」:~ 「[[中間の認証局>PKI(公開鍵暗号基盤)#x5675f15]]のメッセージ(+[[中間の認証局>PKI(公開鍵暗号基盤)#x5675f15]]の公開鍵)」、「[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]によるデジタル署名」 >>>↓ 証明書の発行 & ↑ 検証 -「証明書発行要求の送信側の証明書」:~ 「送信側のメッセージ(+送信側の公開鍵)」、「[[中間の認証局>PKI(公開鍵暗号基盤)#x5675f15]]によるデジタル署名」 検証するとき、証明書チェーンを辿る等と表現するように、実際に、 -「証明書発行要求の送信側の証明書」から -「[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]の自己(発行)証明書」(ルート証明書)の 証明書を辿るような動きをする。 ***中間証明書のインストール [#o5c25693] サーバー側が中間証明書をインストールしていれば、~ クライアント側に中間証明書が送信されるので、~ クライアント側への中間証明書のインストールは必須ではない。~ (ただ、ルート証明書のインストールは必要になる) ***クロスルート証明書のインストール [#z1fe2947] 新ルート証明書を入れられない場合、 -旧ルート証明書からチェーンするクロスルート証明書を入れる。 -クロスルート証明書は --新中間証明書と同じ中間証明書レイヤに居る。 --ただし、新中間証明書にチェーンする。 --このため、以下のような構成になる。 ---署名:旧ルート証明書の署名 ---公開鍵:新ルート証明書のメッセージ+公開鍵と同じもの。 *証明書の種類 [#y547ccd7] 「デジタル証明書」の主要な利用例として、 **サーバー証明書 [#ife3996e] シマンテック製品で言う所の「シマンテック セキュア・サーバ ID」 ***目的 [#he960173] サーバーのユーザが、サーバーの提供者の正当性を検証できるよう、~ サーバーに「サーバー証明書」を埋め込む。 ***用途 [#i259684a] 以下で利用されている。 -各種Webサービス --HTTPS --RDP --,etc. ***[[SSL/TLS]]暗号化通信 [#g61fa2d8] また、[[SSL/TLS]]は、「[[ハイブリッド・暗号化>暗号化アルゴリズム#z7306cb4]]」を使用しているが、~ このうちの「公開鍵・暗号化方式」で使用する鍵に「[[SSL/TLS]]サーバ証明書」に同梱されている秘密鍵・公開鍵を使用している。 -ITpro > selfup --図解で学ぶネットワークの基礎:SSL編~ http://itpro.nikkeibp.co.jp/article/COLUMN/20071002/283518/ --Lesson4 : 相手が信頼できることを確かめる「サーバ証明書」とは?~ http://itpro.nikkeibp.co.jp/article/COLUMN/20071012/284426/ ***証明書のランク [#r00491a2] -DV(Domain Validation) -OV(Organization Validation) -EV(Extended Validation) のランクがある。 詳しくは、下記を参照。 -Lets’s Encrypt - .NET 開発基盤部会 Wiki~ https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Lets%E2%80%99s%20Encrypt ***復号機能を持つプロキシの証明書 [#ff19a0be] 復号機能を持つプロキシの証明書は、~ リバース・プロキシから転送される先のWebサーバのCNと一致させる。 -復号機能をもつプロキシサーバ : ネットワークスペシャリスト - SE娘の剣 -~ http://nw.seeeko.com/archives/50924117.html **クライアント証明書 [#c42748a0] -種類 --メール証明~ メアド単位か、STMPサーバ単位かなどがある。 --コンピュータ証明書~ 802.1XのEAP-TLS認証で利用されるなど。 --ユーザ証明書~ [[SSL-VPN>VPN]]の証明書認証で利用されるなど。 -シマンテック製品で言う所の --「個人用電子証明書」 --「シマンテック セキュアメール ID」 ***目的 [#wccd2d31] ユーザーが別のユーザーの正当性を検証できるよう、~ ユーザのメッセージに「[[クライアント証明書>#c42748a0]]」を埋め込む。 ***用途 [#i259684a] 以下で利用されている。 -電子メールメッセージ -Webサービス(HTTPS) ***特徴 [#gd2e75f0] -≒[[ソフトウェア証明書>#oa4d84a6]](ClickOnce用の証明書が[[クライアント証明書>#c42748a0]]として認識される) -ICカードなどに格納できるので,格納場所を特定のPCに限定する必要はない。 **ソフトウェア証明書 [#oa4d84a6] シマンテック製品で言う所の「コードサイニング証明書」 ***目的 [#xfcb1c46] プログラム配布先のユーザが、プログラムの開発元の正当性を検証できるよう、~ 開発したソフトウェアの実行モジュールに「コードサイニング証明書」を埋め込む。 ***用途 [#u14e42c0] -ActiveX -ClickOnce -デバイスドライバ -EXE、DLL **拡張子から判断(*.cer, *.pfx, etc.) [#z85c202d] *** *.cer/*.crt形式の電子証明書 [#qb0334b2] -*.cerファイルと*.cetファイルは基本的に同義。 -"cer"はcertificateの意味で、主に自己(発行)証明書(ルート証明書)のインポートで使用する。 -「-BEGIN CERTIFICATE-」から始まり「-END CERTIFICATE-」で終わる。 -一般的な証明書は、この形式で証明書の所有者情報や公開鍵を含む。 -*.cerファイルは、[[*.pfxファイル>#sd119f77]]や[[*.spcファイル>#sc7510c3]]に含まれることもある。 ***pfx形式の電子証明書 [#sd119f77] -*.pfxファイルはマイクロソフトが使っている拡張子の取り決めで、*.p12ファイルと同じ[[PKCS #12>PKCS#s276aba4]]形式。 --拡張子pfxとp12(pkcs12)の違いについて - katata_hの日記~ http://d.hatena.ne.jp/lars_t/20100313/1268501773 -[[*.cerファイル>#qb0334b2]] や [[*.spcファイル>#sc7510c3]]をRC2方式で暗号化した[[*.pvkファイル>#d6ec185e]]とパッケージしたもの。 -秘密鍵が含まれる*.pfxファイルのエクスポート・インポートには、パスワードが必要。 --*.pfxファイルのエクスポート・インポートは、次の手順に従う。~ この一連の操作は、Windowsの証明書スナップインや、[[Pvk2Pfx.exe>#hfd93b71]]などで確認できる。 ---秘密鍵付きの証明書をパスワードで暗号化して*.pfxファイルとしてエクスポートする。 ---エクスポートした*.pfxファイルを渡す。 ---*.pfxファイルをパスワードで復号化して秘密鍵付きの証明書をインポートする。 -*.pfxファイルは、以下のケースで使用する。 --技術的には、[[*.spcファイル>#sc7510c3]]と[[*.pvkファイル>#d6ec185e]]を1つの[[*.pfxファイル>#sd119f77]]にまとめ、エクスポート・インポートする。 --用途的には、以下のような秘密鍵のエクスポート・インポートが必要なケースに利用される。 ---[[サーバー証明書>#ife3996e]] ---[[クライアント証明書>#c42748a0]] ---[[ソフトウェア証明書>#oa4d84a6]] ***csr形式の電子証明書 [#sb23ba23] -*.csrファイルは証明書発行要求を格納したファイル。 -CSR:Certificate Signing Request, [[PKCS #10>PKCS#kd1ebd71]]形式。 -「-BEGIN CERTIFICATE REQUEST-」から始まり「-END CERTIFICATE REQUEST-」で終わる。 ***spc形式の電子証明書 [#sc7510c3] -*.spcファイルはマイクロソフトが使っている拡張子の取り決めで、*.p7bファイルと同じ[[PKCS #7>PKCS#u87f1a66]]形式。 -証明書本体の他に、証明機関の証明書も一つのファイルに一緒に含めたい場合に利用する。 -[[ソフトウェア発行元証明書>#oa4d84a6]]とも呼ばれ、署名を行う際に利用される。 ***pvk形式の秘密鍵 [#d6ec185e] -*.pvkファイルはマイクロソフトが使っている拡張子の取り決めで、*.keyファイルと同じ形式。 - = [[PEM形式>#mde70013]] ***Encoding (*.derと, *.pem) [#mde70013] 鍵の中身ではなく、エンコーディングを表している。 -DER(Distinguished Encoding Rules) --鍵や証明書をASN.1というデータ構造の記述方法で表し、 --それをDERシリアライズしたバイナリファイル --*.cer/*.crtファイルは(基本的に)DER形式。 -PEM(Privacy-enhanced mail) --鍵や証明書をASN.1というデータ構造の記述方法で表し、 --それをBase64シリアライズしたバイナリファイル --ファイルの先頭に -- BEGIN... という行があればPEM。 ---CSRのPEM~ 「-BEGIN CERTIFICATE REQUEST-」~「-END CERTIFICATE REQUEST-」 ---CER(CRT)のPEM~ 「-BEGIN CERTIFICATE-」~「-END CERTIFICATE-」 ---KEYのPEM~ 「-BEGIN RSA PRIVATE KEY-」~「-END RSA PRIVATE KEY-」 ***参考 [#w94059b7] -[[その他の拡張子(OpenSSL > 概要 > 証明書操作 > 各種証明書操作)>OpenSSL#c4bcd4ea]] -デジタル証明書のエンコードと拡張子の違い | NDW~ https://www.nextdoorwith.info/wp/se/infra/ssl-tls-pki/digital-certificate-encoding-extensions-difference/ -CER vs CRT: The Technical Difference & How to Convert Them | Comodo SSL Resources~ https://comodosslstore.com/resources/cer-vs-crt-the-technical-difference-how-to-convert-them/ *RSA, DSA, ECDSA [#h453f9c4] **RSA [#kf9dd196] ***[[RSA暗号化アルゴリズム>暗号化アルゴリズム#n94858e7]] [#m9904ef8] ***[[RSA証明書の生成>OpenSSL#wd296f49]] [#ud9da5a1] **DSA [#lac8198a] ***[[DSA暗号化アルゴリズム>暗号化アルゴリズム#j453a343]] [#ac6ec577] ***[[DSA証明書の生成>OpenSSL#odf24106]] [#fb6849c9] **ECDSA [#o659e9b0] ***[[ECDSA暗号化アルゴリズム>暗号化アルゴリズム#j46c8e11]] [#ue357caa] ***[[ECDSA証明書の生成>OpenSSL#w0f78b28]] [#vc9ee266] *証明書生成の方法 [#eaac5253] **[[OpenSSL]] [#tb47e80e] **[[IISの機能>IIS#b1e1283b]] [#w27bbd9d] [[IISの機能>IIS#b1e1283b]]を使用して「[[証明書チェーンがない自己(署名)証明書>#fa5e8e29]]」を生成できる。 **[[証明書サービス (AD CS)]] [#ied27823] [[証明書サービス (AD CS)]]を使用して「[[証明書チェーンがある自己(署名)証明書>#w98fecbe]]」を生成できる。 **EXE(ツール) [#n992aec2] Windows SDK (旧Platform SDK)に同梱されているツール。 ***Makecert.exe [#c5487927] -Makecert.exe (証明書作成ツール) -デジタル署名用の公開キーと秘密キーのペアを作成し、証明書ファイルの中に格納する。 ***Pvk2Pfx.exe [#hfd93b71] [[*.cer>#qb0334b2]]、[[*.spc>#sc7510c3]]、[[*.pvk>#d6ec185e]] の各ファイルに格納されている~ 公開キーと秘密キーの情報を[[*.pfx>#sd119f77]] ファイルにコピーするコマンド ***Cert2spc.exe [#nbd9c302] -Cert2spc.exe (ソフトウェア発行元証明書テスト ツール) -[[X.509 証明書(CER)>#qb0334b2]]から[[ソフトウェア発行元証明書 (SPC)>#sc7510c3]] を作成する。 -テスト専用のツール。 有効な SPC は、VeriSign などの証明書発行機関から入手する。 **ライブラリ(DLL) [#m4905146] ***X509Certificate、X509Certificate2 [#c43fe324] -.NETのX.509 証明書クラス。 --[[X509Certificate>https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.x509certificate.aspx]] --[[X509Certificate2>https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.x509certificate2.aspx]] -なんとなく、X509Certificate、X509Certificate2は、 --署名の検証が厳しくてエラーになる事が多いのかもしれない。 --また、Windowsの証明書ストア(リポジトリ)と密結合しているため、難しさがある。 -参考 --Eight tips for working with X.509 certificates in .NET - Paul Stovell~ http://paulstovell.com/blog/x509certificate2 ***[[BouncyCastle]] [#be87b879] *証明書ストア(リポジトリ) [#dccdb7e5] アプリケーションによっては、~ OSの証明書ストア(リポジトリ)以外に~ 専用のリポジトリを持っているものもある。 -Windows版Firefox 49ではWindowsの証明書ストアに~ インストールされたルート証明書を使用可能に | スラド セキュリティ~ https://security.srad.jp/story/16/09/04/0817244/ **ツール [#yfc8be23] ***Certmgr.exe [#pef56015] -Certmgr.exe (証明書マネージャー ツール) -CUIツール ***Certmgr.msc [#e00087e3] -Certmgr.msc (MMC 証明書スナップイン) -GUIツール -参考 --Tech TIPS:Windowsにインストールされている電子証明書を確認する(GUI編) - @IT~ http://www.atmarkit.co.jp/ait/articles/1611/24/news041.html --Tech TIPS:Windowsで証明書にSHA-1が使われているかどうか確認する(GUI編) - @IT~ http://www.atmarkit.co.jp/ait/articles/1611/24/news042.html **論理証明書ストア [#md1f67a7] ***個人 [#eb75312e] -管理するユーザー、コンピューター、またはサービスに発行 -これらがアクセスできる秘密キーに関連付けられている証明書。 ***信頼されたルート証明機関 [#v743a51d] -暗黙的に信頼された「認証局の自己(発行)証明書」。 -[[グループ・ポリシー]]を使って信頼されたルート証明書を組織に配布できる。 ***中間証明機関 [#z4fc9077] -下位 認証局 に発行する「認証局の自己(発行)証明書」。 -[[グループ・ポリシー]]を使って中間証明機関を組織に配布できる。 ***エンタープライズの信頼 [#n25d8178] -証明書信頼リストのコンテナ -他の組織の自己署名されたルート証明書を信頼する。 -証明書を信頼する目的を制限するための機構を提供します。? ***その他 [#ldacfc6a] -信頼されたユーザー -ほかの人 -信頼された発行元 -サード パーティ ルート証明機関 -証明書の登録要求 -信頼されていない証明書 -Active Directory ユーザー オブジェクト **目的別ストア [#s24a3b0f] ***サーバー認証 [#tc21354d] [[サーバー証明書>#ife3996e]] ***クライアント認証 [#eb2011bf] [[クライアント証明書>#c42748a0]] ***コード署名 [#ua9cbd3d] [[ソフトウェア証明書>#oa4d84a6]] ***セキュリティで保護された電子メール [#lb1f3448] [[メール証明>#c42748a0]] ***暗号化ファイル システム [#r88b9ae3] FS によってデータの暗号化および暗号化の解除に使用される対称キーを~ 暗号化および暗号化解除するキーの組に関連付けられた証明書。 ***ファイル回復 [#me837dd0] EFS によって暗号化されたデータの回復に使用される対称キーを~ 暗号化および暗号化解除するキーの組に関連付けられた証明書。 **ストアの表示 [#a4bb6fa6] 以下の手順で、目的別 or 論理ストア別に表示できる。 -証明書スナップイン(Certmgr.msc)を開く。 -コンソール ツリーで、 --[証明書 - 現在のユーザー] --or [証明書 (ローカル コンピューター)] --or [証明書 - サービス] >をクリック。 -[表示] メニューの [オプション] をクリックし、 ***論理証明書ストア別 [#ldf24eef] -[表示モードの分類] の [論理証明書ストア] をクリックし、[OK] をクリック。 -[論理ストア名] という列見出しが、詳細ウィンドウに表示される。 ***目的別 [#faf911e9] -[表示モードの分類] の [証明書の目的] をクリックし、[OK] をクリック。 -[目的] という列見出しが、詳細ウィンドウに表示される。 **Linuxの場合 [#xf1c5354] ***[[.NET Core]] [#pbdd9ddf] -[[.NET Core]]でLinux上でも動作するようになった。 -証明書検証で証明書ストアをどう扱っているか?など。 -別のシステムではca.crtがストアに入っていなくても問題ない場合もある。 -ただ、[[.NET Core]]のX509Certificate2+通信ライブラリでは、~ 既定で証明書の検証処理が証明書ストアに依存している可能性がある。 ***参考 [#wabd87e4] -独自(root)CA のインストール方法 - Qiita~ https://qiita.com/msi/items/9cb90271836386dafce3 -独自のルートCA証明書を追加する方法~ (Ubuntu, CentOS 7) | iret.media~ https://cloudpack.media/14148 -Linux で信頼性のあるルート認証局としてルート CA 証明書を~ インポートする | ThreatShield | 最新 | F-Secure User Guides~ https://help.f-secure.com/product.html?business/threatshield/latest/ja/concept_050E323821F041479D168D532022FD78-threatshield-latest-ja -c# - Where does .net core search for certificates on linux platform - Stack Overflow~ https://stackoverflow.com/questions/51745559/where-does-net-core-search-for-certificates-on-linux-platform *自己証明書 [#f729c84b] 自己証明書には、以下の2種類の証明書がある。 -自己(発行)証明書 -自己(署名)証明書 **自己(発行)証明書 [#f381be68] -行者と主体者が同一実体であるような公開鍵証明書。 -RFC 5280の3.2節などに定義が見える。 -自己(発行)証明書には、以下の2種類の証明書がある。 --ルート証明書 --キー・ロールオーバー証明書 **自己(署名)証明書 [#t094cf0c] 「[[SSL/TLS]]等のPKIにおいてクライアント側で検証できない(認証パスを辿れない)サーバ証明書。」 全般のことを言い、正規の認証局から取得していない証明書全般を指す。 -オレオレ証明書とは - はてなキーワード~ http://d.hatena.ne.jp/keyword/%A5%AA%A5%EC%A5%AA%A5%EC%BE%DA%CC%C0%BD%F1 自己(署名)証明書には以下の様な種類がある。 ***証明書チェーンがない自己(署名)証明書 [#fa5e8e29] -このタイプの自己(署名)証明書は証明書チェーンが無い。 -[[ルートの認証局>PKI(公開鍵暗号基盤)#k7d39ed0]]の発行する証明書はすべてこれ。 -[[信頼されたルート証明機関>#v743a51d]]のストアに対応する公開鍵をインストールする必要がある。 ***証明書チェーンがある自己(署名)証明書 [#w98fecbe] 企業内で独自認証局を運用しており、~ 独自認証局から発行した自己(署名)証明書は証明書チェーンを持っている。 -タイプ1~ クライアントは独自認証局(ルートCA、中間CA)の証明書の公開鍵をインポートする。 --手動の展開 --[[AD CS>証明書サービス (AD CS)]]の機能を使用して展開 --[[Active Directory]]の[[グループ・ポリシー]]を使用して展開 ---AD CS ポリシー設定~ https://technet.microsoft.com/ja-jp/library/cc725911.aspx -タイプ2~ [[この独自認証局が正規の認証局から、中間認証局の証明書を取得している場合>https://technet.microsoft.com/ja-jp/library/cc772393.aspx#BKMK_BS2]]、~ この中間CA証明書、クロスルート設定用証明書がサーバ側に設定されていれば、~ クライアント側の独自認証局の公開鍵のインポートは不要・・・だと思うが、~ [[AD CS>証明書サービス (AD CS)]]の場合は[[グループ・ポリシー]]で配布するのかもしれないので要確認。 --中間CA証明書はなぜ必要なのでしょうか Symantec~ https://knowledge.symantec.com/jp/support/bms-support/index?page=content&id=SO22877&actp=RSS&viewlocale=ja_JP --中間CA証明書のインストールについて Symantec~ https://knowledge.symantec.com/jp/support/bms-support/index?page=content&actp=CROSSLINK&id=SO22871 *参考 [#l5552d40] **内部リンク [#k0f50bd1] ***[[PKCS]] [#c41ce24f] ***[[PKI(公開鍵暗号基盤)]] [#hd49d9ce] ***[[PMI(権限管理基盤)]] [#i947d86e] ***[[証明書で発生する問題]] [#i2182963] ***[[証明書信頼リスト (CTL)]] [#rdbae8f8] ***[[証明書失効リスト (CRL)]] [#tbf4f4a3] ***[[証明書サービス (AD CS)]] [#o3c7d7a1] **外部リンク [#yeae917a] -IPA 独立行政法人 情報処理推進機構:PKI 関連技術情報~ https://www.ipa.go.jp/security/pki/index.html -PKI基礎講座(1):PKIの基礎を理解しよう! - @IT~ http://www.atmarkit.co.jp/ait/articles/0011/02/news001.html ***証明書 [#ye97fd05] -kunichiko - Qiita --公開鍵暗号をプログラムで扱う方法のまとめ~ http://qiita.com/kunichiko/items/7d4945d8b512ea1a3446#_reference-5299e308cdf8ba57e86d ---公開鍵暗号と電子署名の基礎知識~ http://qiita.com/kunichiko/items/ef5efdb41611d6cf7775 ---RSA暗号の全体像~ http://qiita.com/kunichiko/items/7796ecfb88a62ce26b36 ---RSA鍵、証明書のファイルフォーマットについて~ http://qiita.com/kunichiko/items/12cbccaadcbf41c72735 --PKCS #12 個人情報交換ファイルフォーマットについて~ http://qiita.com/kunichiko/items/3e2ec27928a95630a73a ---電子署名のファイルフォーマット~ http://qiita.com/kunichiko/items/2e0a2bd35c8e9492ceb5 ***Qiita [#n8455ded] -電子署名の基礎知識~ https://qiita.com/angel_p_57/items/437ca6235defc938b97d -「電子署名=『秘密鍵で暗号化』」という良くある誤解の話~ https://qiita.com/angel_p_57/items/d7ffb9ec13b4dde3357d -電子署名DSA/ECDSAの数的構造(1/2)~ https://qiita.com/angel_p_57/items/f2350f2ba729dc2c1d2e -電子署名EdDSA(ed25519)の数的構造~ https://qiita.com/angel_p_57/items/a1dc4e9c0b18a23c5242 ---- Tags: [[:IT国際標準]], [[:セキュリティ]], [[:暗号化]], [[:証明書]]