我正在使用wget
在程序中通过HTTP协议获取一些文件。现在我需要设置安全性,因此我们将HTTP协议更改为HTTPS。
更改为HTTPS后如何执行wget
。我的意思是如何在两台机器之间建立可信连接,然后执行wget
。
我想确保只能从某些系统执行wget
。
我正在使用wget
在程序中通过HTTP协议获取一些文件。现在我需要设置安全性,因此我们将HTTP协议更改为HTTPS。
更改为HTTPS后如何执行wget
。我的意思是如何在两台机器之间建立可信连接,然后执行wget
。
我想确保只能从某些系统执行wget
。
首先,如果这台机器连接到了互联网并且SSL证书由可信源签名,那么就不需要指定证书。
但是,如果使用了自签名证书,情况就会变得更有趣。
例如:
那么您需要信任自签名证书的公钥。您需要将公钥导出为.CER
文件。如何获取SSL证书将决定如何获取公钥作为.CER
一旦您获得了.CER
文件,然后...
我建议两个选项:
wget --ca-certificate={the_cert_file_path} https://www.google.com
在~/.wgetrc
上设置选项
ca_certificate={the_cert_file_path}
苹果macOS用户可以使用cert.pem
文件:
wget --ca-certificate=/etc/ssl/cert.pem
或者在你的~/.wgetrc
中设置:
ca_certificate = /etc/ssl/cert.pem
在Linux上(至少在我的Debian和Ubuntu发行版上),您可以按照以下步骤将您的证书安装为系统级信任。
假设您的证书是~/tmp/foo.pem
,请执行以下操作:
如果尚未安装ca-certificates
软件包,则先安装它,然后执行以下操作来安装foo.pem
:
$ cd ~/tmp
$ chmod 444 foo.pem
$ sudo cp foo.pem /usr/local/share/ca-certificates/foo.crt
$ sudo update-ca-certificates
完成此操作后,大多数应用程序(包括wget、Python和其他应用)在远程站点需要时应会自动使用它。
唯一的例外是Firefox浏览器。它有自己的私有证书存储,因此如果您需要在其中使用该证书,则需要通过其设置界面手动安装证书。
至少对我来说,这总是有效的(将公司证书安装到我创建的Linux虚拟机中以获取Internet访问权限)。
~/.wgetrc
文件,则设置应该命名为ca_certificate
(带下划线),而不是ca-certificate
(带连字符)。 - tony_tigerca-certificate
对我有用,但我会编辑帖子,因为这是文档中的内容! - Demitri