Ошибка настройки Mutt для отправки сообщений с подписью S/MIME.

Вопрос или проблема

Я пытаюсь настроить подписанные сообщения в Mutt, но пока не получается.
Что я сделал:
– Я получил PKSC12 файл от Actalis, содержащий закрытый ключ, конечный сертификат, промежуточный сертификат и корневой сертификат. Они были выданы для моего адреса электронной почты, который нужно было подтвердить.
– Я извлек закрытый ключ и сертификаты в отдельные файлы и создал новый PKCS12 файл, содержащий их, чтобы избавиться от оригинального пароля и также иметь возможность использовать флаг “-legacy” (импорт в базу данных gpgsm не сработал при попытке использовать хранилище ключей, не созданное таким образом):

openssl pkcs12 -export -inkey pvtkey_smime.key -in smime_cert.crt -out key_cert_combo.p12 -legacy

Импорт прошел успешно, вот список, который это доказывает:

miso@swissknife:~/SMIME$ gpgsm --list-keys
gpgsm: enabled compatibility flags:
/home/miso/.gnupg/pubring.kbx
-----------------------------
           ID: 0xC1825A92
          S/N: 17103EDE3D8A1CB5CA065193E7CA436B
        (dec): 30656595769882679830981759075080618859
       Issuer: /CN=Actalis Authentication Root CA/O=Actalis S.p.A.\x2f03358520967/L=Milan/C=IT
      Subject: /CN=Actalis Client Authentication CA G3/O=Actalis S.p.A./L=Ponte San Pietro/ST=Bergamo/C=IT
     validity: 2020-07-06 08:45:47 through 2030-09-22 11:22:02
     key type: 4096 bit RSA
    key usage: certSign crlSign
ext key usage: clientAuth (suggested), emailProtection (suggested)
     policies: 2.5.29.32.0:N:
 chain length: unlimited
  fingerprint: 79:FC:AC:1F:8D:21:6E:EB:D6:D0:C8:F1:15:CF:42:DE:C1:82:5A:92
     sha2 fpr: BB:4D:3E:E6:61:E5:02:94:09:DB:67:40:B9:95:14:94:A7:F2:2A:7B:C0:FD:C1:A1:90:0C:07:A4:78:1F:14:19

           ID: 0x44521E04
          S/N: 6191BFC0FA3C3A9F8882C9E2482F9168
        (dec): 129691887865109954730248104301124620648
       Issuer: /CN=Actalis Client Authentication CA G3/O=Actalis S.p.A./L=Ponte San Pietro/ST=Bergamo/C=IT
      Subject: /[email protected]
          aka: [email protected]
     validity: 2025-01-19 10:57:45 through 2026-01-19 10:57:45
     key type: 2048 bit RSA
    key usage: digitalSignature keyEncipherment
ext key usage: clientAuth (suggested), emailProtection (suggested)
     policies: 1.3.159.16.1.1:N:,2.23.140.1.5.1.1:N:
  fingerprint: 16:97:A0:FA:5D:78:F7:77:78:4C:F6:81:B9:44:BB:5A:44:52:1E:04
     sha2 fpr: 19:B2:00:D5:69:0D:D2:C0:24:5E:05:FB:42:31:85:CC:D5:59:26:0D:5A:C1:D7:4B:01:ED:15:58:BB:C6:BC:36

           ID: 0xC78E9CAC
          S/N: 570A119742C4E3CC
        (dec): 6271844772424770508
       Issuer: /CN=Actalis Authentication Root CA/O=Actalis S.p.A.\x2f03358520967/L=Milan/C=IT
      Subject: /CN=Actalis Authentication Root CA/O=Actalis S.p.A.\x2f03358520967/L=Milan/C=IT
     validity: 2011-09-22 11:22:02 through 2030-09-22 11:22:02
     key type: 4096 bit RSA
    key usage: certSign crlSign
 chain length: unlimited
  fingerprint: F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC
     sha2 fpr: 55:92:60:84:EC:96:3A:64:B9:6E:2A:BE:01:CE:0B:A8:6A:64:FB:FE:BC:C7:AA:B5:AF:C1:55:B3:7F:D7:60:66
miso@swissknife:~/SMIME$ gpgsm --list-secret-keys
gpgsm: enabled compatibility flags:
/home/miso/.gnupg/pubring.kbx
-----------------------------
           ID: 0x44521E04
          S/N: 6191BFC0FA3C3A9F8882C9E2482F9168
        (dec): 129691887865109954730248104301124620648
       Issuer: /CN=Actalis Client Authentication CA G3/O=Actalis S.p.A./L=Ponte San Pietro/ST=Bergamo/C=IT
      Subject: /[email protected]
          aka: [email protected]
     validity: 2025-01-19 10:57:45 through 2026-01-19 10:57:45
     key type: 2048 bit RSA
    key usage: digitalSignature keyEncipherment
ext key usage: clientAuth (suggested), emailProtection (suggested)
     policies: 1.3.159.16.1.1:N:,2.23.140.1.5.1.1:N:
  fingerprint: 16:97:A0:FA:5D:78:F7:77:78:4C:F6:81:B9:44:BB:5A:44:52:1E:04
     sha2 fpr: 19:B2:00:D5:69:0D:D2:C0:24:5E:05:FB:42:31:85:CC:D5:59:26:0D:5A:C1:D7:4B:01:ED:15:58:BB:C6:BC:36

Мой gpgsm.conf выглядит так:

miso@swissknife:~/.gnupg$ cat gpgsm.conf
verbose
default-key 16:97:A0:FA:5D:78:F7:77:78:4C:F6:81:B9:44:BB:5A:44:52:1E:04
disable-crl-checks

и trustlist.txt выглядит так:

miso@swissknife:~/.gnupg$ cat trustlist.txt
# CN=Actalis Authentication Root CA
# O=Actalis S.p.A.\x2f03358520967
# L=Milan
# C=IT
F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC S relax
# CN=Actalis Client Authentication CA G3
79:FC:AC:1F:8D:21:6E:EB:D6:D0:C8:F1:15:CF:42:DE:C1:82:5A:92 S relax
miso@swissknife:~/.gnupg$

Я также могу подписать файл с помощью “gpgsm –sign”:

miso@swissknife:~/SMIME$ gpgsm --sign -o signed_file2.p7m input_file.txt
gpgsm: enabled compatibility flags:
gpgsm: failed to open '/home/miso/.gnupg/policies.txt': No such file or directory
gpgsm: Note: non-critical certificate policy not allowed
gpgsm: certificate is good
gpgsm: failed to open '/home/miso/.gnupg/policies.txt': No such file or directory
gpgsm: Note: non-critical certificate policy not allowed
gpgsm: root certificate is good
gpgsm: CRLs not checked due to --disable-crl-checks option
gpgsm: validation model used: shell
gpgsm: hash algorithm used for signer 0: SHA256 (2.16.840.1.101.3.4.2.1)
gpgsm: DBG: adding certificates at level -2
gpgsm: signature created

Однако я не могу заставить Mutt подписывать исходящее письмо, я всегда получаю:
error signing data: Unusable secret key?

Мой .muttrc выглядит так:

miso@swissknife:~$ cat .muttrc
set from = "[email protected]"
set realname = "Michal"
set smtp_url = "smtp://smtp.gmail.com:587"
set smtp_pass = "************"
# Enable S/MIME
set crypt_use_gpgme = yes
set smime_is_default = yes
set smime_default_key = "1697A0FA5D78F777784CF681B944BB5A44521E04"
set smime_sign_as = "1697A0FA5D78F777784CF681B944BB5A44521E04"
set smime_ca_location = "~/.mutt/ssl/smime_CA_chain.pem"

Можете ли вы помочь здесь, пожалуйста?

С уважением,
Михал

Ответ или решение

Конфигурация почтового клиента Mutt для отправки подписанных S/MIME сообщений может быть сложной задачей, особенно если учесть все шаги, необходимые для обеспечения корректной работы этого процесса. Давайте рассмотрим теорию, пример и применение для решения вашей проблемы.

Теория

S/MIME (Secure/Multipurpose Internet Mail Extensions) — это протокол, который используется для шифрования и подписи электронных писем с использованием сертификатов X.509. Подпись писем с использованием S/MIME обеспечивает подлинность отправителя и сохранность содержимого.

Для успешной конфигурации Mutt на отправку подписанных S/MIME сообщений необходимо правильно настроить несколько аспектов:

  1. Импорт сертификатов и ключей: Необходим частный ключ отправителя и цепочка сертификатов, включающая корневой и промежуточный сертификаты.
  2. Конфигурация GnuPG и GpgSM: GpgSM — это инструмент, обеспечивающий поддержку S/MIME в GnuPG, отвечает за работу с сертификатами и ключами.
  3. Конфигурация Mutt: Mutt должен быть настроен так, чтобы правильно использовать сертификаты и ключи для подписания сообщений.

Пример

Из вашего описания видно, что вы выполнили следующие шаги:

  • Вы извлекли и объединили ключи и сертификаты в формате PKCS#12.
  • Успешно импортировали их в GpgSM.
  • Настроили файлы конфигурации gpgsm.conf и trustlist.txt для управления ключами и сертификатами.
  • Убедились, что подпись файла с помощью команды gpgsm --sign выполняется без ошибок.

Однако, несмотря на успешный процесс подписания файла через gpgsm, ошибка в Mutt свидетельствует о проблемах с интеграцией Mutt и ваши конфигурации S/MIME.

Применение

  1. Проверка наличия ошибок в конфигурации GpgSM:

    • Убедитесь, что основной ключ указан правильно в gpgsm.conf. Ваш ключ, указанный в smime_default_key и smime_sign_as, должен соответствовать default-key в gpgsm.conf.
    • Также учитывайте, что путь к файлам должен правильно указываться без ошибок в синтаксисе.
  2. Проверка конфигурации Mutt:

    • Убедитесь, что set crypt_use_gpgme включен. Это позволит Mutt использовать интерфейс произвольного криптографического модуля для работы с ключами и сертификатами S/MIME.
    • Перепроверьте относительно правильности выставленных путей к файл здания доверия и S/MIME ключам в настройках Mutt.
    • Важно, чтобы все указанные идентификаторы ключей совпадали с теми, которые вы видите при выполнении команды gpgsm --list-secret-keys.
  3. Особенности конфигурации первичного ключа:

    • Проверьте, что GpgSM и Mutt совместимо работают с указанным ключом и сертификатом.
    • Попробуйте использовать команду gpgsm --verify для файла, подписанного Mutt, чтобы проверить любую возможную несовместимость.
  4. Проблемы прав доступа:

    • Убедитесь, что все файлы, в особенности ассеты, с которыми работают GpgSM и Mutt, имеют необходимые права доступа и доступны для чтения и записи.
  5. Отсутствие файла policies.txt:

    • Поиск решений для предупреждений, в которых GpgSM не находит файл policies.txt, так как это может повлиять на процесс апробации политики сертификата.

Возможно, потребуется внести небольшие изменения в ваши файлы конфигурации и перепроверить каждый шаг. Определение корректности конфигурации GpgSM и Mutt, а также тщательная их интеграция, поможет в решении вашей проблемы. Если проблема продлится, рекомендуется выполнить чистую настройку Mutt и GnuPG, следуя документации по использованию S/MIME в рамках этих инструментов.

Оцените материал
Добавить комментарий

Капча загружается...