使用命令行网站下载器,例如wget,curl或任何其他...在脚本中...
我有一个网站的 SHA-1 和 SHA-256 证书指纹。由于安全问题 ( 1 ) ( 2 ),我不想使用公共 SSL 证书颁发机构系统。指纹必须是硬编码的。
wget 之类的应用程序可以检查 SSL 指纹吗?
wget 没有这样的功能。( 3 )
使用wget --ca-certificate或curl --cacert我将不得不运行我自己的本地证书颁发机构,我想阻止这种情况,因为这会增加很多复杂性。这也是非常困难的,以前没有人这样做过。( 4 )
没有任何工具,例如
download --tlsv1 --serial-number xx:yy:zz --fingerprint xxyyzz https://site.com?
解决方案当然不能受到 TOCTOU 的攻击。( 5 )MITM可以让openssl客户端请求返回有效指纹并篡改以下wget请求。
小智 33
安装所需软件:
apt-get install ca-certificates curl
Run Code Online (Sandbox Code Playgroud)
下载公共 SSL 证书:
openssl s_client -connect torproject.org:443 -CAfile /usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt >./x.cert </dev/null
Run Code Online (Sandbox Code Playgroud)
或更好:
echo -n | openssl s_client -connect torproject.org:443 -CAfile /usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./torproject.pem
Run Code Online (Sandbox Code Playgroud)
获取 SHA-1 指纹:
openssl x509 -noout -in torproject.pem -fingerprint -sha1
Run Code Online (Sandbox Code Playgroud)
获取 SHA-256 指纹:
openssl x509 -noout -in torproject.pem -fingerprint -sha256
Run Code Online (Sandbox Code Playgroud)
手动比较 SHA-1 和 SHA-256 指纹与torproject.org FAQ: SSL。
.
Run Code Online (Sandbox Code Playgroud)
可选地使 ca 证书对测试目的无用。在这里使用curl,但是wget有一个错误Bug并且无论如何都使用 ca 文件。
sudo mv /usr/share/ca-certificates /usr/share/ca-certificates_
Run Code Online (Sandbox Code Playgroud)
使用 curl 和固定证书下载:
curl --cacert ./torproject.pem https://check.torproject.org/ > check.html
Run Code Online (Sandbox Code Playgroud)
小智 12
在 tcsh 中:
echo | openssl s_client -connect host.example.com:443 |& openssl x509 -fingerprint -noout
Run Code Online (Sandbox Code Playgroud)
run*_*gel 10
这也足够了:
openssl x509 -fingerprint -in server.crt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106833 次 |
| 最近记录: |