Задать вопрос

Подписать XML с помощью OpenSSL на PHP (Решено)?

Добрый день!

Есть XML, мне необходимо подписать его в формате PKCS#7, использую openssl на php.

Мой код

if (openssl_pkcs7_sign($fileName.'.xml', $fileName.'_signed.xml', "cert.pem",
        array("private.key", "passphrase"),
        array("To" => "test@test.ru", // keyed syntax
            "From: from@test.ru")
    )) {
       echo 111;
    }


Единички не выводит, не понимаю почему.

Через терминал использую так

openssl smime -sign -in file.xml -signer cert.pem -inkey private.key -out file_signed.xml -outform PEM


и после запроса ввода pass phrase private key возникают ошибки
139919525967512:error:0609E09C:digital envelope routines:PKEY_SET_TYPE:unsupported algorithm:p_lib.c:231:
139919525967512:error:0B07706F:x509 certificate routines:X509_PUBKEY_get:unsupported algorithm:x_pubkey.c:148:
139919525967512:error:0B080075:x509 certificate routines:X509_check_private_key:unknown key type:x509_cmp.c:346:
139919525967512:error:2108907F:PKCS7 routines:PKCS7_sign_add_signer:private key does not match certificate:pk7_smime.c:163:


Гуглил ошибки. ничего толкового не нашел, параметры какие только не подставлял, не получается подписать.

Помогите плиз, куда копать хоть, или если есть готовый пример.

Спасибо!

=====================

Первые две ошибки решил.
Остались еще две.

139694728468120:error:0B080073:x509 certificate routines:X509_check_private_key:key type mismatch:x509_cmp.c:343:
139694728468120:error:2108907F:PKCS7 routines:PKCS7_sign_add_signer:private key does not match certificate:pk7_smime.c:163:


========

Оказалось, что сервис неправильный сертификат прислал.
  • Вопрос задан
  • 1184 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
romy4
@romy4
Exception handler
может ещё флаг добавить -t rsa
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы