SSL 経由でリモート サーバーと通信したい Debian ボックスがあります。リモート サーバーには自己署名証明書があります。リモート マシンの永続的なセキュリティ例外を作成するようにローカル マシンに指示するにはどうすればよいですか?
注:これにはコマンドラインメソッドが必要です
SSL 経由でリモート サーバーと通信したい Debian ボックスがあります。リモート サーバーには自己署名証明書があります。リモート マシンの永続的なセキュリティ例外を作成するようにローカル マシンに指示するにはどうすればよいですか?
注:これにはコマンドラインメソッドが必要です
これを行うために私が見つけた方法は、 http://www.madboa.com/geek/openssl/の資料に基づいています。
ステップ1:証明書を取得する
get-cert.shスクリプトを使用する
#!/bin/sh
#
# usage: retrieve-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
echo |\
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |\
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
証明書ファイルを取得し、拡張子が.pemの/ usr / lib / ssl/certsに保存します。
ステップ2:証明書のハッシュを生成する
#!/bin/sh
#
# usage: certlink.sh filename [filename ...]
for CERTFILE in $*; do
# make sure file exists and is a valid cert
test -f "$CERTFILE" || continue
HASH=$(openssl x509 -noout -hash -in "$CERTFILE")
test -n "$HASH" || continue
# use lowest available iterator for symlink
for ITER in 0 1 2 3 4 5 6 7 8 9; do
test -f "${HASH}.${ITER}" && continue
ln -s "$CERTFILE" "${HASH}.${ITER}"
test -L "${HASH}.${ITER}" && break
done
done
手順1でダウンロードしたファイルに対してcertlink.shスクリプトを実行すると、完了です。
証明書ファイルの場所は、オペレーティングシステムによって異なる場合があります。
リモート サーバーとそのキーを既知のホストのリストに追加することはできませんか?