我有一个 Debian 盒子,我想通过 SSL 与远程服务器通信。远程服务器具有自签名证书。如何指示我的本地计算机为远程计算机创建永久安全例外?
注意:我需要一个命令行方法
我有一个 Debian 盒子,我想通过 SSL 与远程服务器通信。远程服务器具有自签名证书。如何指示我的本地计算机为远程计算机创建永久安全例外?
注意:我需要一个命令行方法
我找到的方法是基于http://www.madboa.com/geek/openssl/上的材料
第一步:获取证书
使用 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'
获取证书文件并将其保存在 /usr/lib/ssl/certs 中,扩展名为 .pem
第 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 脚本,然后就完成了。
证书文件的位置可能因您的操作系统而异。
您不能只将远程服务器及其密钥添加到已知主机列表中吗?