13

У меня есть пара ключей, которые, кажется, были сгенерированы с одинаковыми именами. Я хотел бы знать, какой открытый ключ совпадает с каким закрытым ключом, чтобы я мог переименовать / удалить их. Это что-то важное (хранение вокруг открытого ключа) или открытый ключ генерируется каждый раз, когда вы запрашиваете сертификат?

1 ответ1

11

Я думаю, вы смогли обойти вашу проблему, поскольку это старая ветка, но я просто пишу ответ для любой будущей ссылки.

Основная идея - экспортировать ваши закрытые и открытые ключи и использовать openssl для просмотра их модуля. Соответствующие закрытые / открытые ключи будут иметь тот же модуль.

Вот как можно увидеть модуль закрытого ключа:

  1. В Keychain Access экспортируйте свой закрытый ключ и выберите формат файла «Обмен личной информацией (.p12)». Это создаст файл .p12.

  2. Запустите терминал и используйте openssl для преобразования вашего файла .p12 в файл .pem:

    openssl pkcs12 -in key.p12 -out key.pem -nodes
    
  3. Используйте openssl для просмотра модуля закрытого ключа pem:

    openssl rsa -in key.pem -modulus -noout
    

Вот как можно увидеть модуль открытого ключа:

  1. В Keychain Access экспортируйте свой открытый ключ и выберите формат файла «Privacy Enhanced Mail (.pem)». Это создаст .pem файл.

  2. Этот файл .pem является PEM-файлом PKCS # 1 (с заголовком -----BEGIN RSA PUBLIC KEY-----), тогда как openssl может читать только PEM PKCS # 8 (с заголовком -----BEGIN PUBLIC KEY-----). Поэтому откройте экспортированный открытый ключ в TextEdit и удалите бит RSA из верхнего и нижнего колонтитула и сохраните изменения.

  3. Используйте openssl для просмотра модуля открытого ключа pem:

    openssl rsa -pubin -in pubkey.pem -modulus -noout
    

Также обратите внимание, что на самом деле вы также можете удалить свои открытые ключи и воссоздать их из закрытых ключей (таким образом, вы можете быть уверены в своих подходящих парах). Чтобы создать соответствующий открытый ключ из закрытого ключа, используйте следующую команду openssl:

openssl rsa -in key.pem -pubout -out pubkey.pem

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