Esta postagem precisa ser atualizada novamente. Eu estava tendo problemas com a instalação do meu mailx na minha caixa do CentOS 7. O email seria enviado, mas eu ainda estava recebendo o "Erro na certificação: o emissor do certificado do mesmo não é reconhecido". erro.
Eu encontrei a solução aqui , mas tive que traduzi-la.
Aqui está uma maneira rápida de fazer isso:
# Create a certificate directory
mkdir ~/.certs
# Create a new database in the certs dir (dont forget to enter your pass phrase!)
certutil -N -d ~/.certs
# Create three files for the cert chain
touch ~/.certs/google ~/.certs/geotrust ~/.certs/equifax
# Copy the cert chain for smtp.google.com:465 over to my_certs file (don't forget the -showcerts option, CTRL + C to end this command)
openssl s_client -showcerts -connect smtp.gmail.com:465 > ~/.certs/my_certs
Agora copie cada certificado incluindo o --BEGIN CERTIFICATE-- e --END CERTIFICATE-- e cole-os em seus respectivos arquivos que você criou anteriormente (google, geotrust, equifax) e salve esses arquivos agora.
# Open your my_certs file you made earlier and copy the google cert (usually the first one)
nano ~/.certs/my_certs
# Open your google file, paste the google cert that you just copied, and save and close
nano ~/.certs/google
# Open your my_certs file you made earlier and copy the geotrust cert (usually the second one)
nano ~/.certs/my_certs
# Open your geotrust file, paste the geotrust cert that you just copied, and save and close
nano ~/.certs/geotrust
# Open your my_certs file you made earlier and copy the equifax cert (usually the third one)
nano ~/.certs/my_certs
# Open your equifax file, paste the equifax cert that you just copied, and save and close
nano ~/.certs/equifax
Agora temos que importar cada um desses certs para o banco de dados.
# Import the google cert into the db
certutil -A -n "Google Internet Authority" -t "TC,," -d ~/.certs -i ~/.certs/google
# Import the geotrust cert into the db
certutil -A -n "GeoTrust Global CA" -t "TC,," -d ~/.certs -i ~/.certs/geotrust
# Import the equifax cert into the db
certutil -A -n "Equifax Secure Certificate Authority" -t "TCP,," -d ~/.certs -i ~/.certs/equifax
# Double check to make sure everything imported correctly into the db
certutil -L -d ~/.certs
Exemplo de saída:
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Google Internet Authority CT,,
GeoTrust Global CA CT,,
Equifax Secure Certificate Authority CT,,
Tempo de limpeza (opcional)
# Remove all unnecessary files since the db has the certs :)
rm -rf ~/.certs/google ~/.certs/geotrust ~/.certs/equifax ~/.certs/my_certs
# Now run a test to make sure mailx is sending correctly now (don't forget to change [email protected] to the email address you'd like to send to)
echo "Your message" | mail -s "Message Subject" [email protected]
Deve ser isso, você não deve receber o "Erro na certificação: o emissor do certificado do par não é reconhecido." erro mais!
Notas:
Você deve ter notado que mudei o diretório de /certs
para ~/.certs
. mailx é executado como root, então eu fiz essas alterações como root /. "~ /" significa o diretório HOME colocando tudo junto ~/.certs
significa /root/.certs/
. Tenho certeza que você sabia disso, mas hey apenas no caso de você nunca saber quem pode estar lendo isso!
Caso você precise disso, aqui estão as opções de configuração que adicionei ao final de /etc/mail.rc
# /etc/mail.rc options added to the bottom
set smtp-use-starttls
set smtp-auth=login
set smtp=smtp://smtp.gmail.com:587
set from="[email protected](Web01 Server)"
set [email protected]
set smtp-auth-password=your.pass
set ssl-verify=ignore
set nss-config-dir=/root/.certs
Certifique-se de alterar your.from.user, your.smtp.user e your.pass para suas respectivas variáveis.