質問: ### 前提・実現したいこと ここに質問したいことを詳細に書いてください 【実現したいこと】 javaのprocessbuilderを使って証明書作成のバッチファイルあるはシェルスクリプトを実行してopensslを使って秘密鍵、公開鍵とcsr証明書を発行したいです。 【実行方法】 processbuilderの引数に証明書発行に必要な情報(国名やメールアドレスなど)を渡してバッチファイルあるいはシェルスクリプトを起動させ、opensslを経由して証明書を作成したいと考えています。 学習用のため作成手順はオレオレ証明書を参考にしています。作成経験のある方や作成方法をご存知の方がいましたら、教えていただけないでしょうか?
回答: 例えば、オレオレ証明書をlinux上で作成するなら ``` $ openssl genrsa 2048 > server.key $ openssl req -new -key server.key > server.csr $ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt ``` といった手順でできるというやりかたがあちこちのページにありますね。 もし上記手順でのように「ファイル」を作りたくないということであれば必要なことは * ファイルを使わずに証明書を作るためのopensslオプションを調べる * ProcessBuilderを使ってopensslとの標準入出力のリダイレクションを実装する ということになると思います。ただファイルを作成してよいならわざわざProcessBuilderを使わずに、証明書の生成をスクリプト(Linuxならシェルで、Windowsならバッチとして)作成しそのスクリプトを単にRuntime#execで起動するとした方が簡単な気がします。そもそもopensslという外部ツールを呼び出す方法なのでそこにスクリプトが介在したからといってポータビリティー上特に望ましくないという話もないと思います。 もちろん学習目的にProcessBuilderの使用が含まれるなら上記の限りではありません。