curl: RSA_padding_check_PKCS1_type_1: неверное заполнение
Я генерирую сертификат X509 через код (используя API OpenSSL) для моего серверного приложения. Я только что добавил поддержку TLSv1.3, добавив шифры TLSv1.3 в список поддерживаемых в моем коде.
Нет изменений в генерации сертификата и назначении сертификата RSA pub + private key.
Я обновил библиотеки curl & OpenSSL на клиенте, чтобы включить соединение TLSv1.3. Обновленная версия Curl: 7.63.0 и OpenSSL: 1.1.1
Я вижу ниже ошибку:
* TCP_NODELAY set
* Connected to <domain> (<ip-address>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: myCA.pem
CApath: none
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [6 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [1781 bytes data]
* TLSv1.3 (OUT), TLS alert, decrypt error (563):
} [2 bytes data]
* error:0407008A:rsa routines:RSA_padding_check_PKCS1_type_1:invalid padding
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Closing connection 0
curl: (35) error:0407008A:rsa routines:RSA_padding_check_PKCS1_type_1:invalid padding
Та же ошибка приходит даже с TLSv1.2 (с использованием того же обновленного клиента).
Что мне здесь не хватает? Пожалуйста помоги.
4 ответа
Я знаю, что это старый, но у меня была такая же проблема, потому что я скопировал файл PEM из Windows с включенным CRLF вместо LF.
Использовать cat -v cert.pem
чтобы проверить это.
Я нашел эту тему при поиске этой ошибки недопустимого заполнения. Кажется, что причин несколько. В моем случае я подписывал листовой сертификат своим закрытым ключом вместо закрытого ключа сертификата ЦС.
Я выдавал самозаверяющий сертификат самостоятельно созданным ЦС, чтобы использовать его для веб-разработки на локальном хосте, и получал ту же ошибку. Я пытался создать рабочий SSL-сертификат несколько раз, но всегда сталкивался с этой ошибкой, и у меня было несколько центров сертификации с одним и тем же CN, зарегистрированным в источнике доверия моей операционной системы (/etc/ca-certificates/trust-source на manjaro).
Как я решил проблему: удалил все эти "дубликаты" и запустилupdate-ca-trust
для восстановления списка центров сертификации, которым доверяет моя система. Затем один раз импортировал созданный мной ЦС, сгенерировал для него SSL-сертификат и использовал crt и ключ на моем веб-сервере — наконец, нет.error:0407008A:rsa routines:RSA_padding_check_PKCS1_type_1:invalid padding
когда СВЕРНУТЬСЯ в него!
curl: (35) ошибка: 0407008A: подпрограммы rsa: RSA_padding_check_PKCS1_type_1: недопустимое заполнение
чтобы избежать, вы можете использовать опцию -k
он работает так же, как мы используем postman и в настройках отключаем опцию проверки SSL-сертификата
Пожалуйста, найдите пример curl и как использовать опцию -k ниже
curl --location --request POST 'https://sample.ap-south-1.elb.amazonaws.com/v1/messages' --header 'Content-Type: application/json' --header 'Авторизация: Bearer xxxxx' --data-raw '{ "to": "91xxx", "type": "image", "recipient_type": "индивидуальный", "image": { "id": "56dxxxx", "caption": "your-image-caption Saket jain как дела" }}' -k