ncatで使用するためにスクリプトに変数としてsslキーを格納する方法?


1

ncatリスナーを起動するためのラッパースクリプトを作成しようとしています。証明書とキーをファイルに出力する必要はありませんが、スクリプト内の変数として保存して、次のように呼び出します。

#!/bin/bash

crt="(           ---BEGIN CERT ----
MIICjdkfj4544757jkdfjdkfjsfsdkljf4alwjkqe3r3lkfd
dfjsdkfjdkfjdkfjdf34534235jeklgjeg94gjriogjgojdgkdo7HH
87HSKRNSSFSDFJDKDJFKJDSF/7387dfddffdfd8jhrg8hgs....etc")

ncat --listen --ssl --ssl-cert "$crt" --ssl-key "$key" 127.0.0.1 4444

しかし、ncat(またはbash)は、キー自体ではなく、キーを超長ファイル名として解釈し続けます。基本的に、キーと証明書を変数として格納し、実際のファイルから読み取っているかのようにncatに読み取らせます。これは可能ですか?私はいくつかの方法を試してみましたが、まだ運はありませんでした。

回答:


0

ncatのmanページは言う

--ssl-cert             Specify SSL certificate file (PEM) for listening

ファイルパスを--ssl-certで指定しています。 cert文字列をファイルに書き込み、そのファイルを-ssl-certの引数として使用することもできます。

crt="--BEGIN CERT-- ..."
echo $crt > cirt.tmp
ncat --ssl-cert cirt.tmp ...

申し訳ありませんが、私はあなたがファイルを使いたくないと言ったことに気づきました。それが助けになるなら、あなたはそれに書いた後にファイルを削除することができます。


ええ、私はそれをファイルに出力するのではなく変数からそれを読むことによってそれをメモリに保存したいです。
Chev_603

それはなぜですか、私は尋ねることができますか?ファイルのセキュリティが心配だからですか。ファイルのアクセス権を、全世界またはグループが読み取り/書き込みできないように設定できます。
jonr

1
まあ、まず最初に、私は本当にそれをする方法を知りたいです。第二に、私が使用したいサーバーの1つは、半分の頭脳とウェブシェルを持っている人なら誰でも全部読むことができる共有ユーザー環境にあり、私たちはftpアクセスしか持っていません。 time ... lame)、これが私の解決策です。単一のファイルからキーを取得できなかったというわけではありませんが、opensslで暗号化したパスワード、パスワードを使用してシェルスクリプトに必要なすべてのものを隠したり難読化したりするのは簡単です。 expect。だから私は私が取り残さなければならないより少ないファイルのように感じます。
Chev_603

ncatはあなたのユースケースをサポートしていないようです。 -ssl-certは、その値をファイルから読み取るopenssl関数SSL_CTX_use_certificate_fileに直接渡します。もう1つの選択肢は、mkfifoを使用して名前付きパイプに値を書き込み、次にmssfifoファイル名を--ssl-certの引数として使用することです。私は自分で試したことはありません。
jonr

それは面白いですね…誰かがそのようなことをしたことがありますか?
Chev_603
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.