Я хочу реализовать аутентификацию с открытым ключом с помощью CA и смарт-карты. OpenSSH имеет свой собственный формат сертификата, который не является x509.

У меня есть сервер (SSHD) и клиент. Я уже сделал аутентификацию с открытым ключом с CA, теперь я хочу вставить в уравнение смарт-карту. Я использую криптокит ARX для доступа к смарт-карте и хочу импортировать свой ключ и сертификат на смарт-карту. Когда я нажимаю "Импортировать ключ", он говорит, что мне нужен сертификат формата PKCS12 для импорта. Я попытался преобразовать свой сертификат OpenSSH и закрытый ключ RSA в pkcs12, используя Openssl, но он не принимает мой сертификат. Я видел, что это требует кодировки PEM, но я не могу этого добиться.

Итак, мои вопросы:

  1. Как мне конвертировать сертификат и ключ OpenSSH в PKCS12?
  2. Могу ли я на самом деле использовать смарт-карты с сервером OpenSSH, CA и всем пакетом?

Заранее спасибо.

РЕДАКТИРОВАТЬ: Я скажу вам команды, которые я написал, чтобы не было никаких недоразумений

Генерация CA-ключей Ssh-keygen -t RSA -f CA

Генерация пользовательских ключей Ssh-keygen -t Rsa -f User

Подписание ключа пользователя Ssh-keygen -s CA.priv -I идентификатор -n имя пользователя -V +52W User.pub

Теперь выводим user-cert.pub. Я хочу превратить свой сертификат и закрытый ключ в формат pkcs12.

Openssl pkcs12 -export -out certificate.pfx -inkey user.priv -in user-cert.pub -certfile CA-cert.pub

CA-cert.pub - это самозаверяющий сертификат, который я сгенерировал тем же путем генерации ключа пользователя.

Вывод последней команды "невозможно загрузить сертификаты". Я пробовал ее без последней части «-certfile Ca-cert.pub», и вывод остался прежним.

надеюсь, у кого-то есть идея.

1 ответ1

0
  1. OpenSSL может сделать прикрытие.

    openssl pkcs12 -export -out servercert.p12 -inkey servercert.key -in servercert.crt -certfile CACert.crt

  2. Да, вы можете, но вам понадобятся некоторые инструменты:

    • один для взаимодействия со SmartCard на низком уровне: CryptoAPI / OpenCT (Win / Ux)
    • один для обработки содержимого на SmartCard (например, OpenSC)
    • тот, который выполняет аутентификацию
    • один для игры с сертификатами и тому подобное (OpenSSL, как в примере выше)
    • скрипты, чтобы все было гладко (ps / perl)

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