そのため、私は a previous (splendid)回答のレシピに従って、subjectAltName=IP:1.2.3.4
という形式のサブジェクトの別名を持つ証明書署名要求を作成できました。
そのCSRをopenssl req -in key.csr -text
で検査すると、対応するセクションが表示されます。
Requested Extensions:
X509v3 Subject Alternative Name:
IP Address:1.2.3.4
次に、次のような自己署名鍵でCSRに署名します。
openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -CAcreateserial \
-in key.csr -out key.crt
結果の証明書(openssl x509 -in key.crt -text
で検査した場合)は、そのセクションを識別しません。
これは単なる表示パラメータのアーティファクトですか、それとも、署名を行うときに拡張機能を含める必要があることをopenssl x509
に指示する必要がありますか?
MacOS High Sierra(openssl version
レポートLibreSSL 2.2.7
)でOpenSSLを使用していますが、その構成をデフォルトから変更していません。鍵は最終的にDebian(Stretch)サーバー間で使用されるため、このコンテキストで役立つ場合は、そこで鍵生成を実行できます。
次のコマンドは明らかに問題を解決します:
openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -CAcreateserial \
-extensions SAN \
-extfile <(cat /etc/ssl/openssl.cnf \
<(printf "\n[SAN]\nsubjectAltName=IP:1.2.3.4")) \
-in key.csr -out key.crt
同じレシピopenssl req
、ただしextensions
とextfile
ではなく、2つのパラメーターreqexts
とconfig
を使用します。
このコマンドは、関連するセクションを印刷して目的の結果をすばやく確認するのに役立ちました。
openssl x509 -in key.crt -text | grep "Subject Alternative Name" -C 1