忽略SSL证书错误与Wget的
问题描述:
我在我的ColdFusion代码下面的代码工作:忽略SSL证书错误与Wget的
<cfexecute name="curl" arguments = "https://myPath/myFile.xlsx -k" timeout="10" variable="test" />
<cfdump var="#test#" />
此使用cURL从指定的路径下载一个Excel文件,并将其转储到浏览器,它工作正常。
但是,我无法得到与Wget一样的工作。
首先我想:
<cfexecute name="wget" arguments = "https://myPath/myFile.xlsx" timeout="10" variable="test" />
<cfdump var="#test#" />
这将返回一个空字符串。看来我们需要使用相当于cURL的“-k”作为Wget,以告诉它忽略SSL证书错误。所以,我想:
<cfexecute name="wget" arguments = "--no-check-certificate https://myPath/myFile.xlsx" timeout="10" variable="test" />
<cfdump var="#test#" />
这给了我下面的结果:
Usage: wget [OPTION]... [URL]... Try `wget --help' for more options.
我如何使用wget cfexecute内下载Excel文件,忽略SSL证书错误?
编辑:
运行wget --no-check-certificate "https://myPath/myFile.xlsx"
直接在命令行工作。
答
从wget的手册页(http://linux.die.net/man/1/wget)
“HTTPS(SSL/TLS)选项
为了支持加密的HTTP(HTTPS)下载,Wget的必须与外部SSL库,目前OpenSSL的编译。如果Wget编译时没有SSL支持,则这些选项都不可用。“
您可能需要检查您使用的wget版本是否支持SSL。
可以cfhttp做你需要的吗?
https://wikidocs.adobe.com/wiki/display/coldfusionen/cfhttp
如果您使用的是自签名证书,你可以把它添加到您的JVM的密钥存储,以避免证书错误。
如果从命令行运行,似乎排除我的想法,即wget未编译SSL支持。我注意到你在给出的命令行示例中引用URL的方式。它没有这些工作吗?我期望它会,但它们是我可以看到的与cfexecute之间的一个区别。 – 2014-10-03 11:26:54
另一种可能性 - 你确定命令行和CF使用的是相同版本的wget吗?也许把可执行文件的完整路径作为一个双重检查? – 2014-10-03 11:57:17
路径如何? CF真的知道从哪里得到wget?请尝试在您的wget实例中使用显式完整路径启动CF中的wget。 – Konstantin 2015-07-04 16:02:51