Я пытаюсь подключиться к удаленному серверу, который требует взаимного авторизации. Я получил P12-файл с сервера, и использовать следующие команды для создания моего закрытого ключа и клиентского сертификата:Взаимная аутентификация с Jruby Manticore
openssl pkcs12 -in my_dev.p12 -out clientCert.crt -nokeys -clcerts
openssl pkcs12 -in my_dev.p12 -nocerts -nodes -passin pass:mypassword | openssl rsa -out privkey.pem
И я использовал следующий код для установки клиента Мантикора:
client = Manticore::Client.new(
pool_max: 200,
pool_max_per_route: 200,
ssl: { verify: :disable, client_key: client_key , client_cert: client_cert })
url = "https://my_url.com"
resp = client.get(url).call
ответ Я получаю это:
401 Unauthorized
Unauthorized
This server could not verify that you\nare authorized to access the document
requested. Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.
Я очень новой для использования Mutual Auth, и я не знаю точно, где я неправильно. Я правильно ли получил clientCert и privateKey? Правильно ли я отдаю ключ и сертификат Мантикоре?
Спасибо за ответ Крис. Я настроил клиента, как вы изложили выше, но теперь я получаю эту ошибку: «Manticore :: ClientProtocolException: не удалось создать путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: не удалось найти допустимый путь сертификации для запрошенной цели». Это проблема с моим клиентом или с сервером? – bkahler
Скорее всего, из-за того, что Manticore не может проверить сертификат сервера (т. Е. Потому что это не сертификат, подписанный CA, и/или потому, что вам не хватает соответствующих сертификатов). ': truststore' позволит вам указать хранилище доверия для использования (т. е. такое, которое содержит общую половину сертификата SSL сервера), или вы можете предоставить' ca_file', который является цепочкой сертификатов X509. –
Кроме того, вы можете попробовать его с помощью 'verify:: disable', чтобы убедиться, что это действительно проблема, хотя, как я уже упоминал, я не рекомендую это для использования в производстве, поскольку это означает, что вы можете подключиться к ненадежному серверу. –