Как encyrpt сообщение с использованием файла smme.p7s

Мне нужно отправить файл секретного ключа кому-то (доверенный sysadmin) безопасно. Я предложил пару вариантов, но он ответил так:

Привет, у меня нет ни LastPass, ни GnuPGP, но я использую ssl-сертификаты – это сообщение подписано таким образом, что вы сможете отправить мне сообщение и зашифровать его с помощью открытого ключа.

Я использовал openssl для получения его сертификата:

openssl pkcs7 -in smime.p7s -inform DER -print_certs 

Сертификат выдается:

 issuer=/O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org 

(У Firefox нет корневого сертификата cacert.org.)

Теперь, как мне зашифровать файл ключа, который я хочу отправить ему? Я предпочитаю использовать инструмент командной строки, доступный в Ubuntu.

@lgeorget:

 $ openssl pkcs7 -inform DER -outform PEM -in smime.p7s -out smime.pem $ openssl smime -encrypt -text -in /home/myuser/.ssh/mykeyfile smime.pem unable to load certificate 139709295335072:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE 

а также

 $ openssl pkcs7 -in smime.p7s -inform DER -print_certs subject=/CN=Wojciech Kapcia/emailAddress=someone@example.com/emailAddress=someone@example.com issuer=/O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org -----BEGIN CERTIFICATE----- MIIFzjCCA7agAwIBAgIDDR9oMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jv b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ dEBjYWNlcnQub3JnMB4XDTEzMDQxODA3NDEzNFoXDTE1MDQxODA3NDEzNFowcDEY MBYGA1UEAxMPV29qY2llY2ggS2FwY2lhMSkwJwYJKoZIhvcNAQkBFhp3b2pjaWVj [snip] N1lNLq5jrGhqMzA2ge57cW2eDgCL941kMmIPDUyx+pKAYj1I7IibN3wcP1orOys3 amWMrFRa30LBu6jPYy2TeeoQetKnabefMNE3Jv81gn41mPOs3ToPXEUmYU18VZ75 Efd/qu4SV/3SMdySSNmPAVQdXYAxBEXoN5b5FpUW7KeZnjoX4fkEUPeBnNwcptTC d1w= -----END CERTIFICATE----- 

  • Проблема буферизации OpenSSL
  • Нужны объяснения о проблеме SSL и процессе установки
  • генерировать хэш-код SCRAM-SHA-1 пароля
  • Как запустить зашифрованный захват веб-камеры при входе в систему?
  • SSH-туннелирование - локальные и удаленные случаи использования
  • CentOS 6.6: версия OpenSSL
  • правильная генерация CSR
  • Clamav configure: ошибка: в вашей установке OpenSSL отсутствует функция X509_VERIFY_PARAM
  • 2 Solutions collect form web for “Как encyrpt сообщение с использованием файла smme.p7s”

    Ты можешь сделать

     openssl smime -encrypt -text -in <file> smime.p7s 

    где <file> – это файл, который вы хотите зашифровать. Если файл smime.p7s находится в формате DER вместо PEM, вам придется преобразовать его с помощью:

     openssl pkcs7 -inform DER -outform PEM -in smime.p7s -out smime.pem 

    Вы получаете файл, который вы можете отправить своему системному администратору. Если вы достаточно храбры, вы можете удалить -text и играть с опцией -to , -subject и т. Д., Чтобы получить действительный файл электронной почты, который вы можете напрямую отправить на SMTP-сервер.

    Если корневой сертификат сертификата, который вы используете для шифрования, не распознается вашей операционной системой, но вы доверяете ему, вы можете добавить его в базу сертификатов.

     cp smime.pem /usr/local/share/ca-certificates/certificate.crt sudo update-ca-certificates 

    Сертификат должен иметь расширение .crt . Подробности здесь .

    Да, извлечение сертификата FROM pkcs7 с помощью -print_certs верен, и если вы хотите доверять корню получателя, используйте команду cacert.org, а не cert из pkcs7.

    Некоторые пояснения / примечания:

    Дополнительные строки перед блоком cert не являются проблемой. openssl позволяет «комментировать» текст в файлах PEM до строки «—– BEGIN» (и после «—– END»), хотя это нестандартно, а другие программы часто этого не делают.

    Сообщение об ошибке «TRUSTED CERTIFICATE» несколько вводит в заблуждение. openssl фактически разрешает два варианта в файле PEM сертификата: «[X.509] СЕРТИФИКАТ» и «ДОВЕРЕННЫЙ СЕРТИФИКАТ». Первый стандарт, последний используется только в пределах openssl, а затем только редко. openssl ищет их в этом порядке, поэтому, если он не находит ни сообщения об ошибке, TRUSTED не найден. Этот формат допускает определенные атрибуты доверия в файле сертификата и отличается от наличия сертификата в каталоге хранилища доверия (или файле) openssl.

    openssl sime -encrypt НЕ проверяет, что сертификат получателя проверяется против хранилища доверия, хотя, возможно, он и должен. Если есть какая-либо возможность, полученный p7s / cert был изменен или подделан, вы должны вручную openssl verify сертификат, прежде чем использовать его, потому что, если у этого сертификата действительно есть ключ плохого парня, а не хороший парень, ваши данные могут быть дешифрованы плохим парень.

    Linux и Unix - лучшая ОС в мире.