コマンドライン経由でパスワード引数を使用して復号化のためにsslを開く方法


54

そのため、コマンドライン引数を使用してパスワードを渡すことは、最も安全な方法ではありません。そうは言っても、opensslのドキュメントは、opensslコマンドにパスワード引数を渡す方法について私を混乱させました。

これが私がやろうとしていることです

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

これにより、復号化のためのパスキーの入力が求められます。パスワードをファイルにエコーしようとせずにコマンドにパスワードを渡したいだけの場合は、opensslドキュメントとインターウェブを検索して答えを見つけました。追加-pass:somepasswordしてみましたが、-pass somepassword引用符の有無にかかわらず、役に立ちませんでした。

私は最終的に答えを見つけ出し、他のいくつかのフォーラムで人々が同様の質問をしているのを見たので、コミュニティに質問と回答をここに投稿すると思いました。

注:私はopensslバージョン0.9.8yを使用しています

回答:


108

ドキュメントは私にはあまり明確ではありませんでしたが、答えがあり、課題は例を見ることができませんでした。

方法は次のとおりです。

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword

コマンドラインのコマンド構文の-pass後には常にスペースが続き、次に提供するパスフレーズのタイプが続きます。つまりpass:、プレーンパスフレーズの場合、スペースなしのコロンの後の実際のパスフレーズです。

さらに、ドキュメントでは、次の操作を行うことで他のパスフレーズソースを提供できることが指定されています。

  • env:somevar 環境変数からパスワードを取得するには
  • file:somepathname ロケーションのファイルの最初の行からパスワードを取得する pathname
  • fd:number ファイル記述子番号からパスワードを取得します。
  • stdin 標準入力から読み取る

この質問と回答を書いたので、それはすべて明白に思えます。しかし、それを理解するのには確かに時間がかかり、他の人が同じような時間がかかるのを見ていたので、これがその時間を短縮し、他の人のために速く答えることができれば幸いです!:)

OpenSSL 1.0.1eでは、使用するパラメーターは-passinまたは-passoutです。したがって、この例は次のようになります。

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -passin pass:somepassword


パスインとパスアウトの使用の違いは何ですか?-ハ!ただ見上げただけで、もちろんstdin対stdoutです!
dtmland

ほとんどの opensslコマンド(だけでなくenc)に適用されるパスワードオプションのドキュメントは、Web上の「OPTIONS」の下にある openssl(1)のマニュアルページにもあります。しかし、-passin / outについての最後の言葉は信じられません。他の opensslコマンドrsa dsa ec pkey pkcs8 pkcs12 req caはそれらを使用しますが、アップストリームソースのenc使用から直接-passまたはビルドされた1.0.1eを含むすべてのバージョンで-k -kfileencマンページに)記載されています。
-dave_thompson_085

どの程度openssl dgstのコマンド?コマンドラインでそのためのパスフレーズをどのように入力しますか?
frakman1

4
ところで-passin、入力証明書のパスワードを提供するために使用され、-passout新しい生成した証明書のためにある
drmad

7

私が使用-passinして-passoutの例では両方のファイルに設定されたパスワードに:

openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321

どこ123321パスワードです


5

現在、Ubuntu 14.04 LTSにはopenssl 1.0.1f-1ubuntu2.16が付属しています

このバージョンでは、使用するパラメーターは -k

例:

openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword

1
あなたの例では、-kはopenssl 'enc'コマンド(try man enc)で使用可能なオプションであり、一般的なオプションではありません。あなたが見ればman openssl、あなたは「パスフレーズのオプション」という見出しの下に表示されます、一般的なオプションは何ですか。pass:passwordenv:varfile:pathnamefd:numberまたはstdin、以前の応答で述べたように。
sibaz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.