我目前正在与付款处理器工作。 我可以浏览到从我们的服务器支付URL,所以它不是一个防火墙的问题,但是当我尝试使用CFHTTP我得到一个I / O异常:同行不被认证。 我已经下载并安装了最新的安全证书到cacerts中密钥库并重新启动CF和我仍然得到同样的错误。 我不仅安装了供应商的证书,而且证书链中的其他2级威瑞信认证机构的证书。 该证书是较新的3类扩展验证证书中的一个。
有没有人遇到过这一点,并找到了解决办法?
我目前正在与付款处理器工作。 我可以浏览到从我们的服务器支付URL,所以它不是一个防火墙的问题,但是当我尝试使用CFHTTP我得到一个I / O异常:同行不被认证。 我已经下载并安装了最新的安全证书到cacerts中密钥库并重新启动CF和我仍然得到同样的错误。 我不仅安装了供应商的证书,而且证书链中的其他2级威瑞信认证机构的证书。 该证书是较新的3类扩展验证证书中的一个。
有没有人遇到过这一点,并找到了解决办法?
我的一位同事发现了下面的连接到第三方时遇到同样的问题后。
http://www.coldfusionjedi.com/index.cfm/2011/1/12/Diagnosing-a-CFHTTP-issue--peer-not-authenticated
https://www.raymondcamden.com/2011/01/12/Diagnosing-a-CFHTTP-issue-peer-not-authenticated/
我们使用皮特弗赖塔格在评论提供了进一步下跌的一页的解决方案。 它的工作原理,但我认为应该谨慎使用,因为它涉及到动态移除,并在JsafeJCE供应商的特定属性加回。
对于归档的缘故,这里是皮特·弗赖塔格的评论的原始内容:
我有点进一步收窄下来,除去从RSA JsafeJCE提供商KeyAgreement.DiffieHellman(导致默认Sun实现用于代替)接缝工作,并可能有您的服务器上不是删除少的效果整个的供应商将。 这里是你如何做到这一点:
<cfset objSecurity = createObject("java", "java.security.Security") /> <cfset storeProvider = objSecurity.getProvider("JsafeJCE") /> <cfset dhKeyAgreement = storeProvider.getProperty("KeyAgreement.DiffieHellman")> <!--- dhKeyAgreement=com.rsa.jsafe.provider.JSA_DHKeyAgree ---> <cfset storeProvider.remove("KeyAgreement.DiffieHellman")> Do your http call, but pack the key agreement if you want: <cfset storeProvider.put("KeyAgreement.DiffieHellman", dhKeyAgreement)>
我想通了这一点,通过使用的SSLSocketFactory创建一个HTTPS连接,这在堆栈跟踪提供更多的细节,使用CFHTTP时比:
yadayadayada Caused by: java.security.InvalidKeyException: Cannot build a secret key of algorithm TlsPremasterSecret at com.rsa.jsafe.provider.JS_KeyAgree.engineGenerateSecret(Unknown Source) at javax.crypto.KeyAgreement.generateSecret(DashoA13*..) at com.sun.net.ssl.internal.ssl.DHCrypt.getAgreedSecret(DHCrypt.java:166)
将是巨大的,如果从ColdFusion的抛出的异常是少了几分通用。
你把它添加到正确的密钥库? 请记住,ColdFusion的使用它自己的Java实例。 有一次,我记得这个事实之前花在这几个小时。 你想要的是什么地方像/ ColdFusion8 /运行/ JRE / lib / security中/
只针对ColdFusion 8与现代的SSL密码的网络服务器:
我使用的ColdFusion 8 JDK 45年6月1日,并与给予我只是红叉,而不是图片的问题,也与CFHTTP无法使用SSL连接到本地网络服务器。
我的测试脚本复制使用ColdFusion 8是
<CFHTTP URL="https://www.onlineumfragen.com" METHOD="get" ></CFHTTP>
<CFDUMP VAR="#CFHTTP#">
这给了我相当通用的错误“I / O异常:同行没有通过认证。” 然后我试图添加服务器,包括根证书和中间证书的Java密钥库,也ColdFusion的密钥存储的证书,但没有任何帮助。 然后我调试的问题
java SSLPoke www.onlineumfragen.com 443
并得到了
javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
和
Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be
multiple of 64, and can only range from 512 to 1024 (inclusive)
at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..)
at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:627)
at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:107)
... 10 more
然后,我有这样的Web服务器(在我的情况的Apache)有非常现代的密码进行SSL是非常严格的想法(Qualys的得分+),并使用强Diffie赫尔曼键与超过1024位。 显然,ColdFusion和JAVA JDK 45年6月1日不能管理这一点。 在odysee下一步是想安装的Java替代的安全供应商,我决定了充气城堡。 又见http://www.itcsolutions.eu/2011/08/22/how-to-use-bouncy-castle-cryptographic-api-in-netbeans-or-eclipse-for-java-jse-projects/
然后我下载了
bcprov-ext-jdk15on-156.jar
从http://www.bouncycastle.org/latest_releases.html和在C安装了它:\ jdk6_45 \ JRE \ lib中\分机或者其它任何你的JDK,在原来安装ColdFusion 8,这将是在C:\ JRun4 \ JRE \ lib中\分机,但我使用位于ColdFusion的目录外的一个较新的JDK(45年6月1日)。 它把bcprov-EXT-jdk15on-156.jar在\ ext目录(这个我花了大约两个小时,有的头发;-)然后我编辑的文件C是非常重要的:\ jdk6_45 \ JRE \ lib \ security中\ java.security(带写字板不editor.exe!),并把在同一行的新供应商。 事后列表看起来像
#
# List of providers and their preference orders (see above):
#
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.2=sun.security.provider.Sun
security.provider.3=sun.security.rsa.SunRsaSign
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI
(参见在位置1处的新的)
然后完全重新启动ColdFusion服务。 然后你可以
java SSLPoke www.onlineumfragen.com 443 (or of course your url!)
和享受的感觉......当然,和
什么是日夜什么。 希望这将有助于(部分或全部)的人那里。 如果你有任何问题,只是寄给我的信息...(以上域)。
这个在CMD尝试
C:\ ColdFusion9 \运行时\ JRE \ BIN>密钥工具-import -keystore ../lib/security/cacerts -alias uniquename -file certificatename.cer
注意:一定要选择目前的安全文件夹内正确的密钥库,因为还有其他的密钥库文件存在里面bin.If我们将证书导入到那些它不会工作密钥存储。
:我刚刚发现在这篇文章中引用http://kb2.adobe.com/cps/400/kb400977.html和大量挖掘后,其他一些地方。
如果您正在寻找在本文中,您最有可能插入你的“server.crt这”证书在正确的根位置,并已将其使用的命令可能插入cacerts文件在/ ColdFusion9 /运行/ JRE / lib / security中
\ColdFusion9\runtime\jre\bin\keytool -import -v -alias someServer-cert -file someServerCertFile.crt -keystore cacerts -storepass changeit
(如果你还没有这样做,现在就这样做)。 我正在运行到的事情是,我在我的本地设置SSL这样做这些步骤之后,我仍然得到同样的错误。
事实证明,您还需要将您的“server.crt这”成普遍位于/ ColdFusion9 /运行/ JRE / lib中使用命令“的trustStore”文件
\ColdFusion9\runtime\jre\bin\keytool -import -v -alias someServer-cert -file someServerCertFile.cer -keystore trustStore -storepass changeit
希望这将节省别人的时间。
我使用的JRun。 在尝试了很多不同的事情后,我碰到的信息片段,这是适用于我的设置。 我已经配置了(1)HTTPS SSLService用我自己的信任库文件。 这引起了一片在下面的链接信息变得很重要。
http://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html
注:如果您使用的JRun为标的的J2EE服务器(服务器配置或用的JRun配置多服务器/ J2EE),并启用了内部的JRun Web服务器(JWS)SSL,你需要将证书导入到信任在安全JWS而非JRE密钥存储在jrun.xml文件中定义。 默认情况下,文件名为“的trustStore”,并下用的JRun配置或cf_root /运行/ lib中ColdFusion服务器配置多服务器/ J2EE jrun_root / lib目录通常位于。 您可以使用相同的Java密钥工具来管理的trustStore。
下面是我的jrun.xml文件的摘录:
<service class="jrun.servlet.http.SSLService" name="SSLService">
<attribute name="port">8301</attribute>
<attribute name="keyStore">/app/jrun4/cert/cfusion.jks</attribute>
<attribute name="trustStore">/app/jrun4/cert/truststore.jks</attribute>
<attribute name="name">SSLService</attribute>
<attribute name="bindAddress">*</attribute>
<attribute name="socketFactoryName">jrun.servlet.http.JRunSSLServerSocketFactory</attribute>
<attribute name="interface">*</attribute>
<attribute name="keyStorePassword">cfadmin</attribute>
<attribute name="deactivated">false</attribute>
</service>
有一次,我将证书导入到这个信任(/app/jrun4/cert/truststore.jks)它重新启动后的ColdFusion工作。
(1) http://helpx.adobe.com/legacy/kb/ssl-jrun-web-server-connector.html
添加证书密钥库并没有为我上CF9企业工作。
结束了使用的CFX标签, CFX_HTTP5
。