標準のCAが発行したSSLサーバー証明書に追加のカスタムデータを追加する方法を探しています。これは可能ですか?
標準のブラウザで受け入れられるように、標準のCAが発行したSSLサーバー証明書を取得したいのですが。ただし、プライベートアプリケーションで使用される少量の追加データがあり、証明書にも含めたいと考えています。私はそれを証明書に含める方法を探しています。これは、標準のブラウザーが無視し、(批判的に)CAが除外しないようにする方法です。
パブリックCAによって削除されることなく、任意のデータを格納できるフィールドまたは場所はありますか?
多分 the otherName
part of subjectAltName
:標準のCAによって保持されますか?カスタムのx509拡張機能を見る必要がありますか?
重要な要件は、これがCAによって削除または変更されないことです。主要なブラウザーによって信頼されているCAが少なくとも1つ存在している必要があり、このカスタムデータを削除しません。証明書署名要求(CSR)の一部のフィールドがCAによってフィルター処理または削除されていることは知っていますが、任意のデータを許可するフィールド(存在する場合)に関するドキュメントを見つけることができず、CSRからCSRに保存されます最終証明書。
この質問 は関連していますが、同じではありません。最新のブラウザによって信頼されているCAが証明書に署名する必要はありません。また、x509 CSRにカスタム拡張機能を追加する方法に関する多くの情報を見つけましたが、それは私が探しているものではありません。どの拡張にデータを詰め込むかはわかりません(どの拡張が主要なCAによって削除されることはありません)。私は カスタムデータを含むCSRを作成する方法 を知っていますが、CSRのどのフィールドが変更されずに最終的なサーバー証明書にコピーされるのかわかりません。また、自分のCAの実行を含むソリューションも探していません。サーバー証明書を標準のブラウザーで受け入れられるようにしたいのです。 この質問 も同様に見えますが、明確な答えはありません。
まあ、私はCAに連絡して、彼らがそれを行うかどうか尋ねます。彼らはそれをすることができ、あなたが十分に支払えば多分それをする用意があるでしょう。ブラウザーが理解できない重要でないフィールドは無視され、CAによって追加される可能性があります。問題は、彼らがそれをするかどうか、そして彼らだけが答えることができるかどうかです。
一部のCPSは、重要ではない拡張機能を追加する可能性についても言及しており(これらはプライベートにすることもできます)、もちろん重要なプライベート拡張機能を追加することはできません( https://www.digicert.com/docs/cps/DigiCert_CP_v409-1 -June-2015-signed.pdf -7.1.2)。それをしたいというだけの問題です。
発行者CAは、RFC 3280/5280を含む該当する業界標準に従って証明書拡張を使用するものとします。発行者CAは、重要なプライベート拡張を伴う証明書を発行してはならない。
しかし、おそらくあなたが望むことを行う正しい方法は、属性証明書を使用することです。あなたが制御し、SSL証明書にACを発行する属性証明書発行者がいて、必要な追加の属性をあなただけが理解できるようにすることができます。 TLSは、これらのACをクライアントに提供することをサポートしています。または、すでに作成されているSSLトンネルを使用して後者を送信し、必要に応じてクライアントがそれらを解釈することができます。
あなたは尋ねました:
多分subjectAltNameのotherName部分?
いいえ、ありません。サブジェクトの代替名(SAN)フィールドはブラウザによって読み取られ、中間者(MITM)攻撃を実行するために使用できるため、CAはSANフィールド。
X.509証明書標準を定義する RFC 528 、具体的には セクション4.2証明書拡張 を示します。一般的なテキストを許可する標準の拡張機能は表示されませんが、次の専門家は興味深いです(私の強調)。
X.509 v3証明書形式を使用すると、コミュニティはプライベート拡張を定義して、それらのコミュニティに固有の情報を伝達することもできます。証明書の各拡張は、クリティカルとして指定されますまたは非重要。証明書を使用するシステムは、認識できない重要な拡張、または処理できない情報を含む重要な拡張を検出した場合、証明書を拒否する必要があります。クリティカルでない拡張は、認識されない場合は無視される場合がありますが、認識される場合は処理する必要があります。次のセクションでは、インターネット証明書で使用される推奨拡張機能と、情報の標準的な場所を示します。 コミュニティは追加の拡張機能を使用することを選択する場合があります
あなたが言った:
カスタムデータを含むCSRを作成する方法は知っていますが、CSRのどのフィールドが変更されずに最終的なサーバー証明書にコピーされるのかわかりません。
このサイトの誰もあなたのためにそれに答えることができません。 RFC 421 によると、CAは重要でない拡張機能を自由に変更することが許可されています(そしてgrantedWithMods
PKIStatusで証明書を返します)。コメントで述べたように、これは特定のCAと交渉する必要があるものです。