Как в linux использовать сертификат сгенерированный в windows? День добрый. Пытаюсь установить с помощью PHP в Ubuntu 14.10 подключение к одному SOAP-сервису. Что было сделано: Фрагмент документации:Создание и настройка сертификатов Для самостоятельного создания сертификата выполните следующие действия: 1. Выполните следующую команду для создания сертификата: makecert.exe -n "CN=name" -ss My -r -m 120 -pe -sky exchange -a sha1 2. С помощью оснастки «Сертификаты» экспортируйте созданный сертификат в .cer файл и отправьте его на адрес, предоставленной службы технической поддержки. 3. С помощью оснастки «Сертификаты» импортируйте файл сертификата в «Доверенные лица» (Trusted people). Теперь у меня имеется эта пара сертификатов *.cer. Моё затруднение в том, чтобы понять, как этими сертификатами воспользоваться. Пытался создавать стандартный SoapClient указывая в настройках присланный мне сертификат конвертированный в pem-формат, соединение молчком отваливается по таймауту. Попытался отправить запрос с помощью curl без soap-клиента, тогда уже вернулась ошибка о подписи и безопасности. Насколько помню (давно воюю) я взял сертификат сгенерированный на нашей стороне в Windows, извлёк из него открытый и закрытый ключ в pem-формате, указал их в настройках curl с помощью CURLOPT_SSH_PUBLIC_KEYFILE и CURLOPT_SSH_PRIVATE_KEYFILE, указал сертификат присланный техподдержкой сервиса в pem-формате с помощью CURLOPT_SSLCERT, но всё равно ошибка та же. Ранее приходилось работать только с сертификатами от crypto, но там помимо сертификаты присылали ещё шесть файлов ключей и приходилось делать подмену библиотеки, чтобы использовать курл от криптопро, но как я понимаю, здесь не тот случай. Вообще, как я понимаю, для подключения нужно использовать открытый и закрытый ключ той машины, на который генерировался сертификат, он же ведь подтверждает только пару этой машины? Ещё пытался запускать скрипт получив доступ к той машине в windows в которой генерировался сертификат, предварительно добавив его с помощью оснастки в доверенные, но получил те же самые ошибки о подписи и безопасности. "An error occurred when verifying security for the message." Направьте меня пожалуйста на путь истинный.
Для использования сертификата, сгенерированного в Windows, в Linux, вам нужно сконвертировать его в PEM-формат. Для этого можно воспользоваться программой OpenSSL.
Чтобы сконвертировать сертификат в формат PEM, выполните следующую команду в терминале Linux:
openssl x509 -inform der -in certificate.cer -out certificate.pem
Где certificate.cer - это имя вашего сертификата в формате DER (обычно экспортированного из Windows).
После того, как вы сконвертировали сертификат в PEM-формат, вы можете использовать его в своем PHP-коде. Укажите путь к файлу сертификата в параметре CURLOPT_SSLCERT для CURL запросов.
Если у вас все еще возникают ошибки валидации сертификата, попробуйте добавить параметр CURLOPT_SSL_VERIFYHOST и установить его в значение 0, чтобы отключить проверку хоста (но при этом будьте осторожны, так как это делает ваше соединение менее безопасным).
Надеюсь, эти советы помогут вам справиться с проблемой подключения к SOAP-сервису в Ubuntu с использованием сертификата, сгенерированного в Windows. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь спрашивать. Удачи!
Для использования сертификата, сгенерированного в Windows, в Linux, вам нужно сконвертировать его в PEM-формат. Для этого можно воспользоваться программой OpenSSL.
Чтобы сконвертировать сертификат в формат PEM, выполните следующую команду в терминале Linux:
openssl x509 -inform der -in certificate.cer -out certificate.pemГде certificate.cer - это имя вашего сертификата в формате DER (обычно экспортированного из Windows).
После того, как вы сконвертировали сертификат в PEM-формат, вы можете использовать его в своем PHP-коде. Укажите путь к файлу сертификата в параметре CURLOPT_SSLCERT для CURL запросов.
Если у вас все еще возникают ошибки валидации сертификата, попробуйте добавить параметр CURLOPT_SSL_VERIFYHOST и установить его в значение 0, чтобы отключить проверку хоста (но при этом будьте осторожны, так как это делает ваше соединение менее безопасным).
Надеюсь, эти советы помогут вам справиться с проблемой подключения к SOAP-сервису в Ubuntu с использованием сертификата, сгенерированного в Windows. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь спрашивать. Удачи!