Falha na conexão do ColdFusion https

Eu tenho uma API que funciona bem em um dos meus dois servidores web, mas não no outro ou na minha máquina local, em vez disso eu recebo uma falha de conexão quando eu enviar solicitações https como parte do processo de login.

As solicitações são muito simples e funcionam sem problemas em um dos três servidores em que estão sendo executados. O primeiro deles é o seguinte:

        

Eu tive um olhar e isso parece ser um problema comum, mas essa correção não forneceu nenhuma alegria.

Eu estou supondo que há algum cenário de segurança que talvez eu esteja negligenciando? Consigo acessar a página e fazer login no navegador da minha máquina local, se isso ajudar.

Alguém tem algum conselho?

Isso é o que é retornado em um CFDUMP:

 Debugging Information ColdFusion Server Developer 9,0,0,251028 Template /CraigTest/FUT/FIFACPB/logInSearchAccount17.cfm Time Stamp 09-Dec-13 11:40 AM Locale English (UK) User Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0 Remote IP 127.0.0.1 Host Name 127.0.0.1 ________________________________________ Execution Time Total Time Avg Time Count Template 608 ms 608 ms 1 C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\logInSearchAccount17.cfm 5 ms 5 ms 1 CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\Application.cfc | onRequestStart(/CraigTest/FUT/FIFACPB/logInSearchAccount17.cfm) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\Application.cfc 1 ms 1 ms 1 CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Player.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Player.cfc 0 ms 0 ms 1 CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Bid.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Bid.cfc 0 ms 0 ms 1 CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Club.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Club.cfc 0 ms 0 ms 1 CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Connect.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Connect.cfc 0 ms 0 ms 1 CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Search.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Search.cfc 0 ms 0 ms 1 CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\doLogin.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\doLogin.cfc 4 ms STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN 617 ms TOTAL EXECUTION TIME red = over 250 ms average execution time ________________________________________ Scope Variables CGI Variables: AUTH_PASSWORD= AUTH_TYPE= AUTH_USER= CERT_COOKIE= CERT_FLAGS= CERT_ISSUER= CERT_KEYSIZE= CERT_SECRETKEYSIZE= CERT_SERIALNUMBER= CERT_SERVER_ISSUER= CERT_SERVER_SUBJECT= CERT_SUBJECT= CF_TEMPLATE_PATH=C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\logInSearchAccount17.cfm CONTENT_LENGTH= CONTENT_TYPE= CONTEXT_PATH= GATEWAY_INTERFACE= HTTPS= HTTPS_KEYSIZE= HTTPS_SECRETKEYSIZE= HTTPS_SERVER_ISSUER= HTTPS_SERVER_SUBJECT= HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 HTTP_ACCEPT_ENCODING=gzip, deflate HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.5 HTTP_CONNECTION=keep-alive HTTP_COOKIE=cf_debug_general=block; cf_debug_template_stack=block; CFID=15108; CFTOKEN=12249080; CFAUTHORIZATION_cfadmin=YWRtaW4NRTg5NzE2OTdCODczMUI0MDVBM0UxRTZCMjI2N0I1MDA5M0QzQkE4MQ1jZmFkbWlu; CFADMIN_LASTPAGE_ADMIN=%2FCFIDE%2Fadministrator%2Fdebugging%2Findex%2Ecfm HTTP_HOST=127.0.0.1:8500 HTTP_REFERER= HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0 PATH_INFO= PATH_TRANSLATED=C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\logInSearchAccount17.cfm QUERY_STRING=reinit=1 REMOTE_ADDR=127.0.0.1 REMOTE_HOST=127.0.0.1 REMOTE_USER= REQUEST_METHOD=GET SCRIPT_NAME=/CraigTest/FUT/FIFACPB/logInSearchAccount17.cfm SERVER_NAME=127.0.0.1 SERVER_PORT=8500 SERVER_PORT_SECURE=0 SERVER_PROTOCOL=HTTP/1.1 SERVER_SOFTWARE= WEB_SERVER_API= Cookie Variables: CFADMIN_LASTPAGE_ADMIN=/CFIDE/administrator/debugging/index.cfm CFAUTHORIZATION_cfadmin=YWRtaW4NRTg5NzE2OTdCODczMUI0MDVBM0UxRTZCMjI2N0I1MDA5M0QzQkE4MQ1jZmFkbWlu CFID=15108 CFTOKEN=12249080 cf_debug_general=block cf_debug_template_stack=block Session Variables: biddingaccountloggedin=0 biddingaccountloginattempts=0 cfid=15108 cftoken=12249080 mainaccountloggedin=0 mainaccountloginattempts=0 pricingaccountloggedin=0 pricingaccountloginattempts=0 searchaccount10loggedin=0 searchaccount10loginattempts=0 searchaccount11loggedin=0 searchaccount11loginattempts=0 searchaccount12loggedin=0 searchaccount12loginattempts=0 searchaccount13loggedin=0 searchaccount13loginattempts=0 searchaccount14loggedin=0 searchaccount14loginattempts=0 searchaccount15loggedin=0 searchaccount15loginattempts=0 searchaccount16loggedin=0 searchaccount16loginattempts=0 searchaccount17gamertag=ZappyShrimp8 searchaccount17loggedin=0 searchaccount17loginattempts=0 searchaccount18loggedin=0 searchaccount18loginattempts=0 searchaccount19loggedin=0 searchaccount19loginattempts=0 searchaccount1loggedin=0 searchaccount1loginattempts=0 searchaccount20loggedin=0 searchaccount20loginattempts=0 searchaccount21loggedin=0 searchaccount21loginattempts=0 searchaccount22loggedin=0 searchaccount22loginattempts=0 searchaccount23loggedin=0 searchaccount23loginattempts=0 searchaccount24loggedin=0 searchaccount24loginattempts=0 searchaccount25loggedin=0 searchaccount25loginattempts=0 searchaccount26loggedin=0 searchaccount26loginattempts=0 searchaccount27loggedin=0 searchaccount27loginattempts=0 searchaccount28loggedin=0 searchaccount28loginattempts=0 searchaccount29loggedin=0 searchaccount29loginattempts=0 searchaccount2loggedin=0 searchaccount2loginattempts=0 searchaccount30loggedin=0 searchaccount30loginattempts=0 searchaccount3loggedin=0 searchaccount3loginattempts=0 searchaccount4loggedin=0 searchaccount4loginattempts=0 searchaccount5loggedin=0 searchaccount5loginattempts=0 searchaccount6loggedin=0 searchaccount6loginattempts=0 searchaccount8loggedin=0 searchaccount8loginattempts=0 sessionid=FIFAAUTOBUYER_15108_12249080 urltoken=CFID=15108&CFTOKEN=12249080 URL Parameters: reinit=1 Debug Rendering Time: 21 ms 

CFDUMP STAGE2:

 struct Charset [empty string] ErrorDetail I/O Exception: peer not authenticated Filecontent Connection Failure Header [empty string] Mimetype Unable to determine MIME type of file. Responseheader struct [empty] Statuscode Connection Failure. Status code unavailable. Text YES 

Se você estiver usando cfhttp para se conectar via SSL (https), o servidor ColdFusion definitivamente precisa do certificado instalado para se conectar com êxito. Aqui está uma resposta anterior que eu dei sobre um problema semelhante:

Aqui estão as etapas que você precisa executar para instalar o certificado no keystore Java do ColdFusion. Primeiro, verifique se você está atualizando o arquivo cacerts correto que o ColdFusion está usando. Caso você tenha mais de um JRE instalado nesse servidor. Você pode verificar se o JRE ColdFusion está sendo usado pelo administrador em ‘Informações do sistema’. Procure pela linha Java Home.

O armazenamento confiável padrão é o arquivo cacerts do JRE. Este arquivo está normalmente localizado nos seguintes locais:

  • Configuração do Servidor:

    cf_root / runtime / jre / lib / security / cacerts

  • Multiserver / J2EE na configuração do JRun 4:

    jrun_root / jre / lib / security / cacerts

  • Instalação do Sun JDK:

    jdk_root / jre / lib / security / cacerts

  • Consulte a documentação para outros servidores de aplicativos J2EE e JVMs

Para instalar o certificado, primeiro você precisa obter uma cópia do certificado. Isso pode ser feito usando o Internet Explorer. Observe que versões diferentes do Internet Explorer se comportarão de maneira um pouco diferente, mas devem ser muito semelhantes a essas etapas. Por exemplo, versões anteriores do IE podem salvar o certificado em uma guia diferente da que menciono.

  1. Navegue até a URL SSL no Internet Explorer – https://xyz/infoLookup.php?wsdl .
  2. Visualize o certificado clicando no ícone de cadeado e clicando em exibir certificado
  3. Em seguida, clique no botão Instalar certificado … (observação: se você não vir esse botão, feche o IE e execute-o como administrador primeiro)
  4. Clique nas Opções da Internet do IE e clique na guia Conteúdo
  5. Clique no botão Certificados
  6. Encontre o certificado do servidor na guia Autoridades de Certificação Intermediárias, selecione o certificado e clique no botão Exportar …
  7. Exportar usando o formato DER

Copie o arquivo de certificado exportado para o seu servidor ColdFusion (você pode excluir o certificado do IE se quiser)

  1. Execute o prompt cmd como administrador no servidor ColdFusion
  2. Faça um backup do arquivo cacerts original no caso de você ter problemas

O keytool faz parte do Java SDK e pode ser encontrado nos seguintes locais:

  • Configuração do Servidor:

    cf_root / runtime / bin / keytool

  • Multiserver / J2EE na configuração do JRun 4:

    jrun_root / jre / bin / keytool

  • Instalação do Sun JDK:

    jdk_root / bin / keytool

  • Consulte a documentação para outros servidores de aplicativos J2EE e JVMs

Para instalar o certificado:

  1. Altere o diretório para a localização do seu armazenamento confiável (onde o arquivo cacerts está localizado)
  2. Digite este comando (use o comando jvm atual e use o keytool do jvm atual) "c:\program files\java\jre7\bin\keytool" -import -v -alias your_cert_alias_name -file C:\wherever_you_saved_the_file\cert_file.cer -keystore cacerts -storepass changeit
  3. Digite sim no prompt para “Confiar neste certificado?”

Nota: * your_cert_alias_name * eu usei acima pode ser o que você quiser
Nota: * C: \ where_you_saved_the_file \ cert_file.cer * altera esses valores para o que você usa para a pasta do servidor e o nome do arquivo de certificado

Para verificar o certificado:

  1. Digite este comando (use o comando jvm atual e use o keytool do jvm atual) "c:\program files\java\jre7\bin\keytool" -list -v -keystore cacerts -alias your_cert_alias_name -storepass changeit

Nota: * your_cert_alias_name * usa o mesmo nome que você usou acima para instalar o certificado

Reinicie o serviço ColdFusion Ele não lerá o arquivo cacerts atualizado até que você faça isso.

Você pode excluir o arquivo de certificado importado do servidor, se desejar.

Há vários cenários aqui que podem apresentar esta mensagem.

Há também várias postagens e tópicos detalhados no blog que podem ajudar você a investigar seu problema.

1) Problema de resolução de DNS – garanta que você pode atingir o URL do endpoint ou esse erro será produzido.

2) Certifique-se de definir um agente do usuário na solicitação cfhttp, os servidores podem facilmente detectar agentes do usuário não padrão e filtrá-los.

 enter code here 

3) Desative a compactação na solicitação. Nos casos em que você está atingindo alguns servidores, isso funciona. Isso pode resultar em algumas configurações do IIS. Existem inúmeros sites com este exemplo na pesquisa e funcionou para mim.

     

Outro header que você pode tentar enviar dependendo do servidor http do outro lado é:

  

Fonte

4) Se o problema for causado por um certificado SSL, você poderá adicionar manualmente os certificados ao seu servidor. Eu prefiro não olhar nesta direção, se possível, mas você pode procurá-lo.

5) Outro cenário de conexão a uma URL https é que pode haver a necessidade de desabilitar o provedor de certificado padrão (há muitos em Java e o padrão pode não se encheckboxr no que é necessário). Isso não afeta a segurança, apenas usa uma biblioteca equivalente diferente.

Fonte para o exemplo 5

6) Por último, mas não menos importante, você pode estar sendo vítima de rewrite regras. Eu não experimentei isso, mas parece interessante.

CFHTTP “Problemas de conexão” problemas ao usar mod_rewrite

Eu tinha um servidor com o Coldfusion 10 (usando a versão Java: 1.7.0_15) e o Windows Server 2008 . Eu adicionei certificados para o URL da minha API. Mas eu estava recebendo erro

Falha de conexão: código de status indisponível.

Em seguida, adicionei a seguinte configuração à configuração da Coldfusion JVM no Coldfusion Administrator e ela começou a funcionar.

 -Dhttps.protocols=TLSv1.1,TLSv1.2 

Para aqueles que podem ter desembarcado aqui se estavam tendo problemas para usar o cfhttp e o serviço de verificação segura recaptcha do Google (como eu fiz), a postagem nesta página sobre a adição do certificado de segurança do Google ao arquivo cacerts do JRE é essencial.

O que também é essencial (e não é fácil de encontrar) é adicionar

  

para você cfhttp request. Isso resolverá o erro “Não é possível determinar o tipo de conteúdo. MIME inválido”. que também parece um erro de conexão. (adicionando a resposta de Jas)

Graças a 12Robots no fórum de comunidades ColdFusion da Adobe para esse!

Todos os itens acima não funcionarão, se o servidor que você está acessando exigir o TLS 1.2 . Isso requer que você atualize sua JVM para 1.8 , que você pode encontrar mais informações aqui:

http://blogs.coldfusion.com/post.cfm/how-to-change-upgrade-jdk-version-of-coldfusion-server

Eu não tenho pontos suficientes para comentar sobre a resposta do @ Miguel-F, então eu preciso postar esta resposta com minha experiência e mais detalhes …

Depois de seguir instruções para adicionar o certificado, o CFHTTP ainda não estava recebendo o site https para mim. Eu encontrei este post que finalmente me ajudou a resolver o problema. Ele descreve a adição da saída de debugging SSL ao arquivo coldfusion-out.log, que especifica o URL de download exato do certificado que está faltando. O certificado que faltava era “Let’s Encrypt”, que aparecia no arquivo de log como:

accessLocation: URIName: http://cert.int-x3.letsencrypt.org/

Eu acertei a URL e usei o keytool para adicionar o arquivo baixado ao keystore. Voila! Sanidade restaurada.

Eu amo e odeio o ColdFusion

Intereting Posts