Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej. Czy ktoś mógłby mnie przeprowadzić przez proces instaalacji certyfikatu SSL dla Dovecota i postfixa tak, żeby Roundcube mógł z n iego skorzystać?
Instalowałem cały system pocztowy zgodnie z tym:
https://www.linode.com/docs/guides/email-with-postf … uring-dovecot
Wygenerowałem certyfikaty komendą:
dovecot-mkcert
Wcześniej ściągnąłem ten plik ręcznie do /usr/local/bin/dovecot-mkcert bo nie było w paczce
cat /usr/local/bin/dovecot-mkcert #!/bin/sh # Generates a self-signed certificate. # Edit dovecot-openssl.cnf before running this. umask 077 OPENSSL=${OPENSSL-openssl} SSLDIR=${SSLDIR-/etc/ssl} OPENSSLCONFIG=/etc/ssl/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 3650 || exit 2 chmod 0600 $KEYFILE echo openssl x509 -subject -fingerprint -noout -in $CERTFILE || exit 2
cat /etc/ssl/dovecot-openssl.cnf [ req ] default_bits = 2048 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] # country (2 letter code) C=PL # State or Province Name (full name) #ST= # Locality Name (eg. city) L=Miejscowość # Organization (eg. company) O=Firma # Organizational Unit Name (eg. section) OU=IMAP server # Common Name (*.example.com is also possible) CN=poczta.firma.pl # E-mail contact emailAddress=postmaster@firma.pl [ cert_type ] nsCertType = server[/cat] Przeczytałam, że trzeba zrobić jeszcze coś takiego: openssl dhparam -out /etc/dovecot/dh.pem 4096
Próba logowania do roundcube skutkowała błędem. W config/config.inc.php dodałem coś takiego:
$config['default_host'] = 'ssl://poczta.firma.pl'; //your imap server address
Pogooglowałem, doszedłęm dotego i dodałem:
$config['imap_conn_options'] = array( 'ssl' => array( 'verify_peer' => true, 'allow_self_signed' => true, 'peer_name' => 'poczta.firma.pl', 'ciphers' => 'TLSv1+HIGH:!aNull:@STRENGTH', 'cafile' => '/etc/ssl/certs/dovecot.pem', ), ); $config['smtp_conn_options'] = array( 'ssl' => array( 'verify_peer' => true, 'allow_self_signed' => true, 'peer_name' => 'poczta.firma.pl', 'ciphers' => 'TLSv1+HIGH:!aNull:@STRENGTH', 'cafile' => '/etc/ssl/certs/dovecot.pem', ), );
Dodałem też w konfiguracji PHP w dyrektywnie [openssl] i [curl] ścieżki do certyfikatów jednak wciąż nie mogę się zalogować. Co robię źle?
Offline
Dodaj lokalny CA do /etc/ssl/certs/ca-certificates.crt w następujący sposób:
mkdir -p /usr/local/share/ca-certificates/
skopuj swój lokalny CA do tego folderu.
potem z roota
update-ca-certificates
wtedy system doda lokalny CA z /usr/local/share/ca-certificates/
do certów systemowych i PHP będzie go traktował jako systemowy.
To chyba najprostsza droga.
Przy czym do dovecota musisz zrobić cert CA i cert serwera, a potem podpisać cert serwera certyfikatem CA.
to CA, nie cert serwera dodajesz do /usr/share/ca-certificates/.
Czyli pokrótce lokalne CA cię czeka.
TU masz opis w starocerkiewnopolskim:
https://morfikov.github.io/post/generowanie-certyfikatow/
xD
Inna wyjście to np Lets'encrypt na poczta.firma.pl i Roundcube go łyknie jako zaufany prawidłowy cert.
Przy okazji wystawisz Rounducbe na certcie lets'encrypt w necie i przeglądarki z Korei PN nie będą się pluły o nieprawidłowy cert.
:P
Ostatnio edytowany przez Jacekalex (2023-02-17 05:16:15)
Offline
Wygenerowałem certyfikaty zgodnie z poradnikeim. Dodałem lokalny CA do systemowych. Zupdatowałem konfigurację postfixa i dovecota:
grep ssl /etc/dovecot/conf.d/10-ssl.conf ssl = required # certificate, just make sure to update the domains in dovecot-openssl.cnf ssl_cert = </etc/CA/signed_certs/2E93F63A34EC6668DBE682DFA9FFB2CD02E7DAAE.pem ssl_key = </etc/CA/server_key.pem # root owned 0600 file by using ssl_key_password = <path. #ssl_key_password = # ssl_verify_client_cert=yes. The file should contain the CA certificate(s) # followed by the matching CRL(s). (e.g. ssl_ca = </etc/ssl/certs/ca.pem) #ssl_ca = #ssl_require_crl = yes # submission service). The directory is usually /etc/ssl/certs in # RedHat-based systems. Note that ssl_client_ca_file isn't recommended with #ssl_client_ca_dir = ssl_client_ca_dir = /etc/ssl/certs #ssl_client_ca_file = #ssl_client_require_valid_cert = yes # auth_ssl_require_client_cert=yes in auth section. #ssl_verify_client_cert = no # auth_ssl_username_from_cert=yes. #ssl_cert_username_field = commonName # Generate new params with `openssl dhparam -out /etc/dovecot/dh.pem 4096` # Or migrate from old ssl-parameters.dat file with the command dovecot # gives on startup when ssl_dh is unset. ssl_dh = </etc/dovecot/dh.pem #ssl_min_protocol = TLSv1 #ssl_cipher_list = ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH #ssl_cipher_list = ALL:!DH:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH #ssl_curve_list = #ssl_prefer_server_ciphers = no # SSL crypto device to use, for valid values run "openssl engine" #ssl_crypto_device = #ssl_options =
grep tls /etc/postfix/main.cf smtpd_tls_cert_file=/etc/CA/server_key.pem smtpd_tls_key_file=/etc/CA/signed_certs/2E93F63A34EC6668DBE682DFA9FFB2CD02E7DAAE.pem smtpd_tls_security_level=may smtp_tls_CApath=/etc/ssl/certs smtp_tls_security_level=may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Po restarcie mam w sysylogu:
warning: Wrapper-mode request dropped from unknown[46.148.40.151] for service smtps. TLS context initialization failed. For details see earlier warnings in your logs.
Swoich prób logowania do RoundCube w ogóle nie widzę.
Nad użyciem let's encrypt też myślałem tylko co z rekordem DKIM w domenie? Jak dobrze patrzę na przykładzie innejdomeny, gdzie ruch WWW szyfruję za pomocą certa z letsencrypt, odnawia się on co 2 miesiące (/etc/letsencrypt/archive/innadomena.pl/) Czy dobrze rozumiem, że musiałbym co dwa miesiące updatować rekord TXT domeny z kluczem publicznym? DNSa mam na Cloudflare.
Ostatnio edytowany przez DeWu (2023-02-17 09:34:37)
Offline
Co ma piernik do wiatraka a DKIM do certu SSL?
To dwie rożne metody i dwa różne mechanizmy, w dodatku każdy robi co innego.
RTFW (znajdź różnicę :P):
https://pl.wikipedia.org/wiki/DomainKeys_Identified_Mail
https://pl.wikipedia.org/wiki/Transport_Layer_Security
Ostatnio edytowany przez Jacekalex (2023-02-17 11:03:52)
Offline
A ten certyfikat który tu się generuje i potem umieszcza w rekordzie DNS domeny. Gdzie go się umieszcza (na dysku serwera) i w których configach (postfix, dovecot) wykorzystuje?
Offline
DeWu napisał(-a):
A ten certyfikat który tu się generuje i potem umieszcza w rekordzie DNS domeny. Gdzie go się umieszcza (na dysku serwera) i w których configach (postfix, dovecot) wykorzystuje?
To masz cały opis:
http://opendkim.org/docs.html
Tu masz, jak generować klucze poleceniem konsoli:
http://opendkim.org/opendkim-genkey.8.html
I Dovecot nie ma z nim nic wspólnego, działa jako zewn filtr (milter) dla Postfixa.
Tutaj masz opis na wiki Debiana:
https://wiki.debian.org/opendkim
Przy okazji wciągnie w zależnościach Unbounda a Bind wyleci w kosmos, na to się przygotuj.
Ostatnio edytowany przez Jacekalex (2023-07-15 10:33:51)
Offline