Проблема в создании OpenSSL сертификата для Dovecot (POP3-сервера)
Добрый день!
На официальном сайте dovecot http://wiki.dovecot.org/SSL/CertificateCreation
можно скачать срипт mkcert.sh и dovecot-openssl.cnf
Листинг срипта:
# Generates a self-signed certificate.
# Edit dovecot-openssl.cnf before running this.
OPENSSL=${OPENSSL-openssl}
SSLDIR=${SSLDIR-/etc/ssl}
OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf}
CERTDIR=$SSLDIR/certs
KEYDIR=$SSLDIR/private
CERTFILE=$CERTDIR/dovecot.pem
KEYFILE=$KEYDIR/dovecot.pem
if [ ! -d $CERTDIR ]; then
echo "$SSLDIR/certs directory doesn't exist"
exit 1
fi
if [ ! -d $KEYDIR ]; then
echo "$SSLDIR/private directory doesn't exist"
exit 1
fi
if [ -f $CERTFILE ]; then
echo "$CERTFILE already exists, won't overwrite"
exit 1
fi
if [ -f $KEYFILE ]; then
echo "$KEYFILE already exists, won't overwrite"
exit 1
fi
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 365 || exit 2
chmod 0600 $KEYFILE
echo
$OPENSSL x509 -subject -fingerprint -noout -in $CERTFILE || exit 2
А вот листинг dovecot-openssl.cnf:
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
# country (2 letter code)
#C=FI
# State or Province Name (full name)
#ST=
# Locality Name (eg. city)
#L=Helsinki
# Organization (eg. company)
#O=Dovecot
# Organizational Unit Name (eg. section)
OU=IMAP server
# Common Name (*.example.com is also possible)
CN=imap.example.com
# E-mail contact
emailAddress=postmaster@example.com
[ cert_type ]
nsCertType = server
Проблема заключается в том, что OpenSSL не понимает команду x509.
Листинг ошибки:
/etc/dovecot\n
openssl\n
openssl req -new -x509 -nodes -config /etc/dovecot/dovecot-openssl.cnf -out /etc/dovecot/certs/dovecot.pem -keyout /etc/dovecot/private/dovecot.pem -days 365 || exit 2
Error Loading extension section cert_type
7887:error:2206506F:X509 V3 routines:v2i_ASN1_BIT_STRING:unknown bit string argument:v3_bitst.c:132:section:,name:test,value:
7887:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:v3_conf.c:93:name=nsCertType, value=test
Каким образом можно это подключить, либо заменить, чтобы сделать сертификат dovecot.pem?
- Для комментирования войдите или зарегистрируйтесь
.
у меня (правда, под альтернативной осью) отработали два команды:
openssl.exe req -new -x509 -nodes -out file.crt -keyout file.key -days 365
openssl.exe x509 -subject -fingerprint -noout -in file.pem
так что против фразы "OpenSSL не понимает команду x509" решительно протестую.
из приведённых мною команд видно, что я не использовал ключ -config
А текст ошибки звучит "Error Loading extension section cert_type"
я подозреваю, что дело именно в /etc/dovecot/dovecot-openssl.cnf
этот конфиг лежит http://dovecot.org/doc/dovecot-openssl.cnf
и в конце
вот сюда и надо рыть
UPDATE: оказалось нет. Скачал dovecot-openssl.cnf, положил рядом, выполнил
openssl.exe req -new -x509 -nodes -config dovecot-openssl.cnf -out xx.crt -keyout kekkey -days 365
и всё работает. Версия OpenSSL 0.9.8g 19 Oct 2007
UPDATE2: чтобы локализовать проблему, попробуйте без ключа "-config". Если сработает, появляется вероятность того, что проблема с *.cnf, но не с его контентом, а с путями или правами. Если же не сработает, тогда ой
UPDATE3: пришёл домой, попробовал под Gentoo.
Всё работает.
Ошибка: Error Loading
Ошибка:
Error Loading extension section cert_type
7935:error:2206506F:X509 V3 routines:v2i_ASN1_BIT_STRING:unknown bit string argument:v3_bitst.c:132:section:,name:test,value:
7935:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:v3_conf.c:93:name=nsCertType, value=test
Отсюда видно, что ругается на cert_type в dovecot-openssl.cnf, строка
x509_extensions = cert_type
Интересно
А dovecot сподобился персонального конфига openssl?
Чем он отличается от системного?
Попробовать забить на персональный?
Как учтён/отработан параметр сертификата/ключа центра авторизации?
--
Live free or die
.
Почему тогда у меня не ругается (см мой UPDATE3)? Я думаю у тебя что-то с openssl, хотя я не настаиваю. The Truth is Out There наверное.
Заработало... Ре
Заработало...
Решаю вопрос импорта сертификата для Thunderbird
.
расскажи, как ты победил проблему, нам же всем интересно
Ошибка была в
Ошибка была в dovecot-openssl.cnf.
Готовые сертификаты записал в \etc\dovecot\private и \certs, можно было, конечно, в \etc\ssl
Сейчас разбираюсь, как импортировать сертификат в клиент Thunderbird.