извините за это, но я новичок в ssl и что я не так? я пытаюсь изменить логин dovecot imap на imaps, но что-то идет не так с проверкой сертификата ssl. Сертификат ssl работает для сервера https apache, и это то же самое, что я пытаюсь использовать для dovecot. я пытался понять ответ от Дэйва Томсона https://stackoverflow.com/questions/47108886/openssl-s-client-error-verify-errornum-2unable-to-get-issuer-certificate но новичку тяжело. может у вас есть более простой способ. спасибо и бр
openssl s_client -connect <мой-домен>:993 -servername <мой-домен> -CAfile /etc/apache2/ssl/cert_2021.ca-bundle
вывод:
ПОДКЛЮЧЕН(00000003)
depth=2 C = США, ST = Нью-Джерси, L = Джерси-Сити, O = Сеть USERTRUST, CN = Центр сертификации USERTrust RSA
ошибка проверки: число = 2: невозможно получить сертификат эмитента
эмитент = C = GB, ST = Greater Manchester, L = Salford, O = Comodo CA Limited, CN = AAA Certificate Services
проверить возврат: 1
depth=1 C = ГБ, ST = Большой Манчестер, L = Солфорд, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA
эмитент = C = США, ST = Нью-Джерси, L = Джерси-Сити, O = сеть USERTRUST, CN = USERTrust RSA Certification Authority
проверить возврат: 1
depth=0 CN = <мой-домен>
эмитент = C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA
проверить возврат: 1
---
Цепочка сертификатов
0 s:CN = <мой-домен>
i:C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA
---
Сертификат сервера
-----НАЧАТЬ СЕРТИФИКАТ-----
...gJaprVUs
-----КОНЕЦ СЕРТИФИКАТА-----
subject=CN = <мой-домен>
issuer=C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA
---
Имена ЦС сертификата клиента не отправлены
Дайджест одноранговой подписи: SHA256
Тип одноранговой подписи: RSA-PSS
Временный ключ сервера: X25519, 253 бита
---
SSL-рукопожатие прочитало 2192 байта и записало 397 байт.
Ошибка проверки: не удалось получить сертификат эмитента
---
Новый, TLSv1.3, шифр TLS_AES_256_GCM_SHA384.
Открытый ключ сервера 2048 бит.
Безопасное повторное согласование НЕ поддерживается
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
Предварительные данные не были отправлены
Подтвердите код возврата: 2 (не удалось получить сертификат эмитента)
---
---
Билет на новую сессию после рукопожатия прибыл:
SSL-сессия:
Протокол: TLSv1.3
Шифр: TLS_AES_256_GCM_SHA384.
Идентификатор сеанса: 3B8DCD9A603FF577C1E77F40C5D3BCE2B9BAE026EF430566359B0D82353CE1E5.
Идентификатор сеанса-ctx:
Возобновление PSK: 69E09...34D1
Идентификация PSK: нет
Подсказка идентификации PSK: нет
Имя пользователя SRP: нет
Подсказка о сроке действия билета сеанса TLS: 7200 (секунд)
Билет сеанса TLS:
0000 - 97 86 ca 30 d9 1e 13 95-51 b3 06 87 9d 9f fe ec ...0....Q.......
...
00d0 - 26 69 ba 7b 58 58 2c da-18 90 c9 8b 9f e2 3f be &i.{XX, ......?.
Время начала: 1651046361
Время ожидания: 7200 (сек)
Подтвердите код возврата: 2 (не удалось получить сертификат эмитента)
Расширенный главный секрет: нет
Макс. ранние данные: 0
---
читать Р БЛОК
---
Билет на новую сессию после рукопожатия прибыл:
SSL-сессия:
Протокол: TLSv1.3
Шифр: TLS_AES_256_GCM_SHA384.
Идентификатор сеанса: F834...EE6E
Идентификатор сеанса-ctx:
Возобновление PSK: A6FBE...23BF
Идентификация PSK: нет
Подсказка идентификации PSK: нет
Имя пользователя SRP: нет
Подсказка о сроке действия билета сеанса TLS: 7200 (секунд)
Билет сеанса TLS:
0000 - 97 86 ca 30 d9 1e 13 95-51 b3 06 87 9d 9f fe ec ...0....Q.......
...
00d0 - a9 74 d9 44 c8 40 43 11-48 32 1e e2 2a 8f b9 bb [email protected]..*...
Время начала: 1651046361
Время ожидания: 7200 (сек)
Подтвердите код возврата: 2 (не удалось получить сертификат эмитента)
Расширенный главный секрет: нет
Макс. ранние данные: 0
---
читать Р БЛОК
* OK [ВОЗМОЖНОСТЬ IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot (Raspbian) готов.
* BYE Отключен за неактивность.
закрыто
для других попыток
openssl s_client -connect <мой-домен>:993 -servername <мой-домен> -CApath /etc/ssl/certs/ | grep 'код возврата'
я получаю тот же результат:
depth=0 CN = <мой-домен>
ошибка подтверждения: число = 20: невозможно получить сертификат локального эмитента
...
..
.
Время начала: 1651049986
Время ожидания: 7200 (сек)
Код возврата проверки: 21 (невозможно проверить первый сертификат)
Расширенный главный секрет: нет
Макс. ранние данные: 0
мой
/etc/dovecot/conf.d/10-ssl.conf
имеет минимальный cfg
SSL = требуется
ssl_cert = </etc/apache2/ssl/cert_2021.crt
ssl_key = </etc/apache2/ssl/cert_2021.key
ssl_client_ca_file = /etc/apache2/ssl/cert_2021.ca-bundle
ssl_dh = </usr/share/dovecot/dh.pem
ОБНОВИТЬ:
После вашего ввода тревога Я скидываю все в один файл. означает, что информация crt, key и ca-bundle красиво и гладко с копией + вставкой. сохранено под /etc/голубятня/частный
без всяких симлинков. под /etc/dovecot/conf.d/10-ssl.conf
я установил
ssl_cert = </etc/dovecot/private/all_certs_in_one.txt
#ssl_client_ca_file = /etc/apache2/ssl/es_2021.ca-bundle
и я попробовал команду
openssl s_client -showcerts 6-connect <мой-домен>:993 -servername <мой-домен>
я получаю этот вывод, который определенно больше, чем последний...
ПОДКЛЮЧЕН(00000003)
написать: errno=104
---
нет доступного однорангового сертификата
---
Имена ЦС сертификата клиента не отправлены
---
Рукопожатие SSL прочитало 0 байт и записало
322 байта
Проверка: ОК
---
Новый, (НЕТ), Шифр (НЕТ)
Безопасное повторное согласование НЕ поддерживается
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
Предварительные данные не были отправлены
Подтвердите код возврата: 0 (хорошо)
---
ОБНОВЛЕНИЕ - с половинным РЕШЕНИЕМ
нано mkcert.sh
#!/бин/ш
# Генерирует самоподписанный сертификат.
# Отредактируйте dovecot-openssl.cnf перед запуском.
умаск 077
OPENSSL=${OPENSSL-openssl}
SSLDIR=${SSLDIR-/etc/ssl}
OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf}
CERTDIR=$SSLDIR/сертификаты
KEYDIR=$SSLDIR/частный
CERTFILE=$CERTDIR/dovecot.pem
KEYFILE=$KEYDIR/dovecot.pem
если [ ! -d $CERTDIR]; тогда
echo "Каталог $SSLDIR/certs не существует"
выход 1
фи
если [ ! -d $KEYDIR]; тогда
echo "Каталог $SSLDIR/private не существует"
выход 1
фи
если [-f $CERTFILE]; тогда
echo "$CERTFILE уже существует, не перезаписывается"
выход 1
фи
если [-f $KEYFILE]; тогда
echo "$KEYFILE уже существует, перезаписывать не будет"
выход 1
фи
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 3650 || выход 2
chmod 0600 $KEYFILE
эхо
$OPENSSL x509 -subject -fingerprint -noout -in $CERTFILE || выход 2
нано dovecot-openssl.cnf
[требуется]
биты по умолчанию = 2048
шифр_ключ = да
отличительное_имя = req_dn
x509_extensions = тип_сертификата
подсказка = нет
[ req_dn ]
# страна (двухбуквенный код)
#К=ФИ
# Название штата или провинции (полное название)
#СТ=
# Название местности (например, город)
#L=Хельсинки
# Организация (например, компания)
O=<ИМЯ МОЕЙ ФИРМЫ>
# Название организационного подразделения (например, раздел)
OU=IMAP-сервер
# Обычное имя (также возможно *.example.com)
CN=mail.<ВАШЕ ДОМЕННОЕ ИМЯ>
# Контакт по электронной почте [email protected]
emailAddress=support@<ВАШЕ ДОМЕННОЕ ИМЯ>
[ тип_сертификата ]
нсцерттипе = сервер
создать символические ссылки:
ln -s /etc/ssl/certs/dovecot.pem /etc/dovecot/private/dovecot_pem_sym.pem
ln -s /etc/ssl/private/dovecot.pem /etc/dovecot/private/dovecot_pem_sym.key
нано /etc/dovecot/conf.d/10-ssl.conf
SSL = требуется
ssl_cert = </etc/dovecot/private/dovecot_pem_sym.pem
ssl_key = </etc/dovecot/private/dovecot_pem_sym.key
#ssl_client_ca_dir = /etc/ssl/сертификаты
#ssl_client_ca_file =
#ssl_dh = </usr/share/dovecot/dh.pem
рестарт
systemctl перезапустить голубятню
тестовое задание
openssl s_client -showcerts -connect <ВАШ почтовый.ДОМЕН>:993 -servername <ВАШ почтовый.ДОМЕН>
код ошибки
Подтвердите код возврата: 18 (самоподписанный сертификат)
но это лучше, чем ничего =/ мой сертификат apache работает, но да. швы, что у нас не может все работать =(
кстати. не забудьте установить в Outlook, например, @cfg метод
к SSL/TLS
не автоматический