Kyberpalautuminen: Varmenteen noutaminen epäonnistui TLS-protokollalla
Summary: Cyber Recovery 19.17 -päivityksen jälkeen voit tarkistaa varmenteen uuden vaihtoehdon TPS (Transport Layer Security) -protokollan käyttöönoton yhteydessä. Tässä artikkelissa käsitellään tilanteita, joissa varmenteen noutaminen epäonnistui TLS-protokollalla. ...
Symptoms
Cyber Recovery 19.17 -päivityksen jälkeen voit tarkistaa varmenteen uudella tavalla, kun TLS (Transport Layer Security) -protokolla otetaan käyttöön. Kun varmenne tarkistetaan, Cyber Recovery -käyttöliittymässä näkyy seuraava virhe:
Mail server certificate is required when enabling TLS.
Cause
Seuraavat merkinnät tulostetaan Cyber Recovery -lokeista.
crcli.log:
[2024-10-03 11:49:03.273] [DEBUG] [crcli] [restapi_client.go:384 HandleRESTAPIResponse()] : Entering
[2024-10-03 11:49:03.273] [DEBUG] [crcli] [restapi_client.go:392 HandleRESTAPIResponse()] : REST status code :500
[2024-10-03 11:49:03.273] [ERROR] [crcli] [restapi_client.go:401 HandleRESTAPIResponse()] : Failed to retrieve mail server certificate : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.273] [DEBUG] [crcli] [restapi_client.go:402 HandleRESTAPIResponse()] : Exiting
[2024-10-03 11:49:03.273] [ERROR] [crcli] [libcli.go:150 CliErrorExit()] : Failed to retrieve mail server certificate : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
edge.log:
[2024-10-03 11:48:53.268] [DEBUG] [edge] [restapi_client.go:200 callRestApi()] : Perform request.Post path=https://notifications:9096/irapi/v8/notifications/retrieveEmailCert
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:209 callRestApi()] : status = 500 Internal Server Error
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:410 GetCRResponse()] : Entering
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:417 GetCRResponse()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:210 callRestApi()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:116 CallCRRESTAPI()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:57 CallRESTAPIHeader()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:384 HandleRESTAPIResponse()] : Entering
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:392 HandleRESTAPIResponse()] : REST status code :500
[2024-10-03 11:49:03.272] [ERROR] [edge] [restapi_client.go:401 HandleRESTAPIResponse()] : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [edge] [restapi_client.go:402 HandleRESTAPIResponse()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [jsonerr.go:27 JSONError()] : Entering
[2024-10-03 11:49:03.272] [ERROR] [edge] [jsonerr.go:40 JSONError()] : 500 : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [edge] [jsonerr.go:44 JSONError()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [edge] [notifications.go:560 RetrieveEmailCert()] : Exiting
[2024-10-03 11:49:03.272] [INFO] [edge] [restauth.go:111 func1()] : POST /cr/v8/notifications/retrieveEmailCert End RetrieveEmailCert Elapsed=10.005125439s
notifications.log:
[2024-10-03 11:48:53.270] [INFO] [notifications] [restauth.go:68 func1()] : POST /irapi/v8/notifications/retrieveEmailCert Start RetrieveEmailCert
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:210 validateToken()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:194 DecryptToken()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:48 DecodeString()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:56 DecodeString()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:558 DecryptCFB()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:579 DecryptCFB()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:48 DecodeString()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [encoding.go:56 DecodeString()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:112 GenHash()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [crcrypto.go:118 GenHash()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:206 DecryptToken()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:268 ValidateTokenTime()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:281 ValidateTokenTime()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [restauth.go:255 validateToken()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:283 RetrieveEmailCert()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:175 ValidateMailServer()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:201 ValidateMailServerURL()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:210 ValidateMailServerURL()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:215 ValidateMailServerPort()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:222 ValidateMailServerPort()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [notifications.go:196 ValidateMailServer()] : Exiting
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [email.go:227 RetrieveEmailCert()] : Entering
[2024-10-03 11:48:53.270] [DEBUG] [notifications] [email.go:272 GetTLSConn()] : Entering
[2024-10-03 11:49:03.271] [DEBUG] [notifications] [email.go:283 GetTLSConn()] : Exiting
[2024-10-03 11:49:03.272] [ERROR] [notifications] [email.go:235 RetrieveEmailCert()] : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [email.go:236 RetrieveEmailCert()] : Exiting
[2024-10-03 11:49:03.272] [ERROR] [notifications] [notifications.go:321 RetrieveEmailCert()] : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [jsonerr.go:27 JSONError()] : Entering
[2024-10-03 11:49:03.272] [ERROR] [notifications] [jsonerr.go:40 JSONError()] : 500 : Failed to connect to mail server: dial tcp: lookup smtp-mail.com: i/o timeout
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [jsonerr.go:44 JSONError()] : Exiting
[2024-10-03 11:49:03.272] [DEBUG] [notifications] [notifications.go:323 RetrieveEmailCert()] : Exiting
Versiosta 19.17 alkaen Cyber Recovery alkoi tarkistaa postipalvelimen varmennetta TLS:ää käytettäessä.
Muissa kuin DNS (Domain Name System) -ympäristöissä postipalvelimen syöttäminen DNS-nimeksi epäonnistuu, koska Cyber Recovery ei pysty selvittämään isäntänimen IP-osoitteeksi DNS:n puutteen vuoksi ympäristössä.
Kun IP-osoitetta käytetään CR: n posti-/välityspalvelinkenttänä ja postipalvelimen toimittamassa varmenteessa ei ole IP-osoitetta, vahvistus epäonnistuu, koska varmennetta tarkistetaan IP-osoitteen perusteella.
Voit kiertää ongelman muutamalla kiertotavalla:
- Lisää IP-osoite postipalvelimen antamaan varmenteeseen, jotta vahvistus voi toimia.
- Lisää sähköpostipalvelimen ja IP-osoitteen merkintä
/etc/hostsilmoitussäiliössä, jotta CR voi ratkaista postipalvelimen onnistuneesti ja varmenne voidaan tarkistaa.
Resolution
Ongelman voi ratkaista kahdella tavalla:
- Postipalvelin käyttää täydellistä toimialuenimeä (FQDN), eikä Cyber Recovery saa varmennetta.
- Varmista, että käytät DNS-palvelinta varastoympäristössäsi ja toimiiko se oikein.
- Jos varastossa ei ole DNS-palvelinta, toimi seuraavasti:
- Anna SMTP (Simple Mail Transfer Protocol) -palvelimen tiedot Notifications Dockerin isäntätiedostoissa.
- Muodosta SSH-yhteys Cyber Recovery -palveluun.
- Suorita tämä komento:
docker exec -it cr_notifications_1 bash - Avaa tiedosto tekstinkäsittelyohjelmassa:
/etc/hosts - Lisää SMTP-palvelimen merkinnät IP:ksi, FQDN:ksi ja lyhyeksi nimeksi.
- Tallenna tiedosto.
- Poistu docker-säilöstä suorittamalla seuraava komento:
exit
- Jos haluat tehdä merkinnän
/etc/hostsTiedosto pysyy uudelleenkäynnistyksen aikana, toimi seuraavasti:- Lisää rivi kohtaan
cr-install-path>/etc/docker-compose-prod-<current-version>.ymlIP-osoitteelle, johon haluat lisätä/etc/hostsIlmoitukset: - Lihavoituna korostetulla uudella rivillä pitäisi olla SMTP:n toimialueen täydellinen toimialuenimi ja sitten IP-osoite:
SMTP.server.com:xxx.xxx.xxx.xxx
build: .image: ${registryName}/cr_notifications:${notificationsVersion}container_name: cr_notifications_1security_opt:- no-new-privileges:truehostname: notificationsexpose:- "9096"depends_on:- postgresqlcap_drop:- ALLenvironment:- LD_LIBRARY_PATH=/cr/lockbox/lib- CRHOSTNAME=${dockerHostFQDN}- ENABLE_TLS=${enableTLS}- ENABLE_POSTFIX=${enablePostfix}- GODEBUG=tlskyber=0extra_hosts:- dockerbridge:${dockerBridge}- ${dockerHostFQDN}:${dockerHost}- SMTP.server.com:xxx.xxx.xxx.xxx - Suorita sitten komento
'crsetup.sh – forcerecreate'KUN TÖITÄ EI OLE KÄYNNISSÄ.
- Lisää rivi kohtaan
- Anna SMTP (Simple Mail Transfer Protocol) -palvelimen tiedot Notifications Dockerin isäntätiedostoissa.
- IP-osoitteen käyttäminen SMTP:lle ja Cyber Recovery -toiminnolle ei saa varmennetta.
-
- Tässä tapauksessa on luotava uusi varmenne, joka sisältää käytettävän IP-osoitteen.
Tai
-
- Jos varmenne on luotu FQDN:n avulla, käytä Cyber Recovery -käyttöliittymässä täydellistä toimialuenimeä sen sijaan, että muodostaisit yhteyden SMTP:hen IP-osoitteen avulla.