Можно ли использовать самозаверяющие сертификаты SMIME с Mutt?

811
Bryan

Я пытаюсь использовать самозаверяющий ключ SMIME, который моя компания выдала мне с помощью Mutt. Однако, когда я пытаюсь импортировать его, smime_keysя получаю следующее.

Couldn't identify root certificate! No root and no intermediate certificates. Can't continue. at /usr/bin/smime_keys line 708. 

Я использую Mutt на OSX, недавно установленной с помощью Homebrew. Кто-нибудь знает способ заставить smime_keysпринять мой самоподписанный сертификат? Могу ли я добавить сертификат подписи, используемый моей компанией, в какой-нибудь авторитетный файл корневого CA где-нибудь?

########## # UPDATE # ########## 

Итак, я смог smime_keysпринять свой самоподписанный сертификат, сначала добавив корневой CA моей компании через smime_keys add_root root-ca.cer. Теперь, однако, когда я пытаюсь расшифровать зашифрованное письмо, мне Mutt спрашивает меня пароль моего сертификата шифрования и когда я ввожу его, я получаю сообщение о том Could not copy message. Когда я пытаюсь отправить подписанное или зашифрованное письмо от Mutt, после ввода в пароль моего сертификата я получаю сообщение о том Can't open OpenSSL subprocess!: No such file or directory (errno = 2).

Некоторая дополнительная информация - когда я запускаю Mutt в режиме отладки mutt -d 3и пытаюсь расшифровать зашифрованное письмо, я вижу следующее в .muttdebug0.

Failed on attachment of type application/pkcs7-mime. Bailing on attachment of type application/pkcs7-mime. Could not copy message 

Есть идеи?

1

1 ответ на вопрос

2
Bryan

Alright, so I was able to figure out what the heck I was doing wrong here. It comes down to me not having sourced the smime.rc file such that Mutt knew what OpenSSL commands to use when trying to sign/verify and encrypt/decrypt messages.

As an aside, just in case this is useful to anyone, I also figured out how to ensure I can read encrypted emails that I've sent to others when I look at them in my sent folder.

In smime.rc, update the smime_encrypt_command to tack your public encryption certificate onto the end of the openssl command. For example:

set smime_encrypt_command="openssl smime -encrypt -%a -outform DER -in %f %c ~/.smime/certificates/123456789.0" 

Where certificate 123456789.0 is your public certificate for S/MIME encryption. Just for completion, %a is the variable for which method of encryption to use, %f is the variable for the email text being encrypted, and %c is the variable for the recipient(s) of the email.

В частности, `% f` - это путь к текстовому файлу, содержащему открытый текст, а`% c` - это путь к сертификатам получателей. Michael Mrozek 9 лет назад 0