SSL-сертификат PHP CURL в ColdFusion CFHTTP

Я использую ColdFusion, но наш пример кода написан на PHP.

Нам нужно выполнить интеграцию со сторонней системой, которая требует от нас включения сертификата SSL, а также ключа SSL.

Я пытался искать вокруг, но не мог найти никакого решения. Кто-нибудь сталкивался с этой проблемой раньше?

Ниже приведен пример кода, который мы получили от нашего партнера, но написанного на PHP. Спасибо, если у кого-нибудь есть решение для преобразования его в ColdFusion CFHTTP.

$header   = array();
$header[] = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
$header[] = "Cache-Control: max-age=0"; 
$header[] = "Connection: keep-alive"; 
$header[] = "Keep-Alive:timeout=5, max=100"; 
$header[] = "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3"; 
$header[] = "Accept-Language:es-ES,es;q=0.8"; 
$header[] = "Pragma: "; 
$header[] = "X_ENTITY_KEY: " . $entity_key; 

$tuCurl = curl_init();
   curl_setopt($tuCurl, CURLOPT_URL, $url);
   curl_setopt($tuCurl, CURLOPT_PORT , 443);
   curl_setopt($tuCurl, CURLOPT_VERBOSE, 0);
   curl_setopt($tuCurl, CURLOPT_HTTPHEADER, $header);
   curl_setopt($tuCurl, CURLOPT_SSL_VERIFYPEER, 0);
   curl_setopt($tuCurl, CURLOPT_SSL_VERIFYHOST, 0);
   curl_setopt($tuCurl, CURLOPT_SSLCERT, $path . '/api/file.pem');
   curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($tuCurl, CURLOPT_SSLKEY, $path . '/api/file.key');

echo $exec = curl_exec($tuCurl);

curl_close($tuCurl);
$data = json_decode($exec, TRUE);

person david_cheong    schedule 11.02.2015    source источник
comment
Какую ошибку вы получаете в CF? Пожалуйста, опубликуйте фрагмент кода CF и сведения об ошибке.   -  person andrewdixon    schedule 11.02.2015
comment
Чтобы указать вам правильное направление, эквивалент Curl в ColdFusion — это cfhttp, вам, вероятно, следует начать с него, а затем вернуться и сообщить нам, где что-то идет не так.   -  person Jarede    schedule 11.02.2015
comment
И для того, чтобы вызов cfhttp использовал сертификат SSL, вам необходимо импортировать сертификат в хранилище ключей Java, которое использует ColdFusion. См. шаги здесь stackoverflow.com/a/20475763/1636917.   -  person Miguel-F    schedule 11.02.2015
comment
Я проверяю справку CFHTTP на веб-сайте Adobe, у нас нет возможности установить CURLOPT_SSLKEY, я могу найти только атрибуты clientCert и clientCertPassword. насколько я понимаю, clientCert должен быть равен CURLOPT_SSLCERT, но clientCertPassword — это просто строковый тип данных, который используется для расшифровки сертификата клиента. Наша проблема в том, что третья сторона требует, чтобы мы прикрепляли ключевой файл при вызове их API.   -  person david_cheong    schedule 12.02.2015