SSL証明書と暗号化アルゴリズム

OpenSSLでの秘密鍵CSRの作り方…を二つの証明書発行会社のヘルプで見たら全然違うことが描いてあるので良く確認したら、片方は手順を踏んで「秘密鍵つくって、CSRつくって」とやっているが、もう片方は「CSRを作る…と見せかけてついでに新しい秘密鍵も作る」というコマンドオプションだった。ゆえに後者のコマンドがひたすら長い…

既存の秘密鍵を使ったCSR作成とかを考えると、前者の方が応用範囲が広いが、後者の方が「一回で終わる」のが良いという判断だろう。



そんなことを考えながらコマンドオプションを精査していくと…「des3」?トリプルDESか?なんでそんなの使ってるの?確か期限切れの宣言があったはずなんだが…

確認のため、CSRを送る相手の方のコマンドを精査してみると…今度は「アルゴリズムの指定がない」。



よくよく調べてみると、ここ(genrsa:鍵作成)で指定する暗号化アルゴリズムは「保存されるプライベートキーをローカルで暗号化する方法」を示しているらしく、指定しない場合は「暗号化されていない秘密鍵ファイル」が出来るだけらしい。

ローカルで使用するだけなら互換性とか無視できるんだし、なぜトリプルDESとか古いアルゴリズムを使うのか意味が不明だった。指定するならAES128とかにしてくれ。
いや、AES128とか書かれていたら何も悩まなかったのでオプションの意味とか調べなかったから、その場合オプションを誤解したままだったけど。



…まぁそれ以前にサーバー証明書用の秘密鍵は「暗号化なし」の事が多いわけだが。よく見るともう一方はCSR作成コマンド(req)のオプションとして「-nodes」が書かれていたのだが、これが「ノード」のことかと思ったら「no DES」であって、「秘密鍵を暗号化しない」という明示的なオプションだった(笑)
いやこのオプション、今の時代とは合致してないな。「noenc」とかでないと。トリプルですらないDESが使われていた頃のオプションだった。


https://www.openssl.org/docs/apps/genrsa.html
https://www.openssl.org/docs/apps/req.html