специфично для coldfusion 8 с веб-сервером с современными ssl-шифрами:
Я использую coldfusion 8 на JDK 1.6.45, и у меня были проблемы с предоставлением мне только красных крестиков вместо изображений, а также с cfhttp, не способным подключиться к локальному веб-серверу с помощью ssl.
мой тестовый сценарий для воспроизведения с Coldfusion 8 был
<CFHTTP URL="https://www.onlineumfragen.com" METHOD="get" ></CFHTTP>
<CFDUMP VAR="#CFHTTP#">
это дало мне довольно общую ошибку "I / O Exception: peer not authenticated".
Затем я попытался добавить сертификаты сервера, включая корневые и промежуточные сертификаты, в хранилище ключей 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
Тогда мне пришла в голову мысль, что веб-сервер (в моем случае apache) имеет очень современные шифры для ssl, он довольно ограниченный (qualys Score a +) и использует сильные ключи diffie hellmann с более чем 1024 битами. Очевидно, Coldfusion и Java JDK 1.6.45 не может справиться с этим.
Следующим шагом в 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 \ ext или где бы ни находился ваш jdk, в оригинальной установке coldfusion 8 он будет находиться в C: \ JRun4 \ jre \ lib \ ext, но я использую более новый jdk (1.6.45), расположенный вне каталог Coldfusion. очень важно поместить bcprov-ext-jdk15on-156.jar в каталог \ ext (это стоило мне около двух часов и немного волос ;-)
затем я отредактировал файл C: \ jdk6_45 \ jre \ lib \ security \ java.security (с wordpad, а не с 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!)
и наслаждайся ощущением ...
и конечно
какая ночь и какой день. Надеюсь, это поможет (частично или полностью) кому-то там. если у вас есть вопросы, просто напишите мне на info ... (домен выше).