OpenSSLでつまづいた話
背景
諸事情でPKCS12ファイルから証明書と秘密鍵を取り出した
OpenSSL Light のv3.1.1をEXEファイルでインストールし、
1.x系の手順書を参考にして作業を進めたが、エラーしかかえってこなかった
調べてもOpenSSL 1.x系の記事しかでてこなかったため残しておきます
前提
・OpenSSL Light 3.1.1 Windows 64bitのEXEでインストール
・環境変数は通している
- コマンドプロンプトでOpenSSLコマンドが実行できる
※注 内容が拙いですが、現状の理解度そのままで記載しています、ご了承ください。
各々の環境で一部読み替えが必要になります。
この操作で起こった事象については、一切の責任を取れません、ご認識願います。
また、コマンドに基づいては各公式ドキュメントを参照してください。
本題
OpenSSL 1.x -> 3.xのアップデートに伴いいくつかのコマンドが
セキュリティ上の問題で通常呼び出しできないようになっている?
利用するためには
legacy.dll
を利用できるように設定する必要がある
configファイルに下記項目を追加する必要があるみたいだが、
実施したも、さんしょうできずエラーとなった、理由は不明…
legacy_init = legacy
[legacy_init]
activate = 1
エラーメッセージを元にGitHubやStack overflowを探すと、
環境変数に追加をするべきとの記述があったため
以下コマンドでいったん環境変数追加
set OPENSSL_MODULES="インストールPath/bin"
その後、公式のリファレンスなどを参照し、取出し成功。
証明書
$openssl pkcs12 -in example.p12 -clcerts -nokeys -out example.pem -legacy
鍵
$openssl pkcs12 -in example.p12 -nocerts -nodes -out example.key -legacy
上記コマンドから分かるようにオプションで
-legacy
の指定が必要となる点、注意が必要となる。
後書き
やりたいことはできました。
ただ、これだと一時的にしかコマンド実施できない認識です。
後日、setxなどでずっと使えるようにします。