Я пытаюсь получить доступ к внутреннему корпоративному веб-сайту, который доступен с клиентским сертификатом только через wget , curl или аналогичный. Я могу получить доступ к этому сайту с помощью IE и Chrome.

Как мне экспортировать сертификат из IE и использовать его с wget?

Я до сих пор пробовал следующее без удачи

  • Экспорт из IE без закрытого ключа в формате der и использование его с wget --certificate-type=DER

  • Экспорт из IE с закрытым ключом в pfx и использование с и без --certificate-type=DER

  • Экспортируйте из IE, как указано выше, и преобразуйте в pem с помощью команды openssl pkcs12 -in cert.pfx -out cert.pem -nodes и используйте его без --certificate-type=DER

1 ответ1

1

Вы ДОЛЖНЫ иметь соответствующий закрытый ключ, чтобы использовать сертификат клиента для аутентификации на сервере. Представление сертификата без соответствующего закрытого ключа похоже на представление имени пользователя без пароля. Любой может знать ваше имя пользователя или сделать копию вашего сертификата. Это не доказывает, что вы - вы, поэтому его нельзя использовать для аутентификации. Точно так же, как знание того, что ваш пароль доказывает, что вы являетесь владельцем определенного имени пользователя, закрытый ключ - это секрет, который знают только вы, который подтверждает, что вы являетесь надлежащим владельцем сертификата.

Таким образом, вам необходимо экспортировать как сертификат, так и соответствующий закрытый ключ тем или иным способом, и получить их оба в формате DER или PEM и передать их обоим в wget через соответствующие аргументы командной строки.

Я не вижу способа передать wget пароль шифрования для вашего закрытого ключа, который полностью отстой, потому что это означает, что вам придется оставить свой закрытый ключ незашифрованным на диске, что является большим нет-нет. Предполагается, что секреты всегда должны быть "зашифрованы в покое" (т. Е. На диске), а также "зашифрованы при передаче" (т. Е. Через сеть).

Похоже, что curl лучше, чем wget в этом аспекте, потому что curl имеет
-E, --cert <certificate[:password]> , чтобы вы могли сохранить свой секретный ключ в зашифрованном виде на диске. curl есть некоторые варианты оставить свой закрытый ключ внутри цепочек для ключей на некоторых платформах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .