コマンドラインからopensssl X509証明書のタイトル行にカスタムフィールドを追加する

コマンドラインからopensssl X509証明書のタイトル行にカスタムフィールドを追加する

証明書のCSRを生成しようとしていますが、証明書のタイトル行の一部として一意のIDを含めたいと思います。証明書が検証され(通常のTLS検証方法を介して)接続が確立された後、TLSクライアントは特定の目的でこの情報を使用する必要があります。

CSRを自動的に生成するスクリプトを使用していますが、システム上のopenssl構成ファイルを変更するオプションはありません。追加の属性と値を指定できるこの目的のために、一時的なSSL構成を生成するオプションがあることがわかります。しかし、単純化のために必ず使用しなければならないまでは使用しないように努力します。

次のコマンドを試しましたが、次の警告メッセージが表示されます。

$ openssl req -key abc.pem -new -out abc.csr -subj "/CN=myhostname.mydomain.com/uuid=a1b2c3d4e5f6"
req: Skipping unknown attribute "uuid"

コマンドラインを介してUUIDを渡す方法はありますか?それ以外の場合は、一時設定ファイルを使用する唯一のオプションはありますか?

答え1

OpenSSLはこれが何を意味するのかわからないuuidため、リクエストに追加することはできません。

openssl.cnfファイルに新しい属性を定義し、そのタイプのすべての要求に使用できます。

ファイルopenssl.cnfにはで始まる行が必要です。おそらくすでに存在しているはずですoid_section =。これは、新しい属性を定義できるセクションを指します。

oid_section = new_oids
.
.
[ new_oids ]
uuid = 1.3.6.1.4.1.32473.123

次の数字uuidはOID(オブジェクト識別子)です。 OIDは、属性に割り当てられたグローバルに一意のID番号です。これはCommonNameやOrganizationなどのパブリック属性に対して定義されていますが、カスタム属性を使用する場合は、OpenSSLが理解できるようにここで定義する必要があります。

上記の例では、サンプル文書(1.3.6.1.4.1.32473)に事前定義されたエンタープライズOIDアークを使用し、新しいノード123を追加します。ドキュメント外のドメイン名としてexample.comまたはexample.orgを使用しないように、example arcを使用しないでください。

あなたはできます新規事業者番号登録無料で独自のOIDセットを作成してください。最上位登録OIDに追加されたすべてのノードは一意であり、ユーザーが制御できます。

関連情報