[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Error al usar certificado en Postfix



Hola, he configurado Postfix para que use permita relay desde el exterior 
previa autenticación tipo "LOGIN". Me funciona correctamente.

Ahora trato de usar TLS para dicho proceso de autenticación pero me sale un 
error que no comprendo.


Si me conecto desde un ordenador remoto con telnet y hago "ehlo mi_maquina" 
sale esto:

************************************************************************
  ehlo blablabla
  250-correo.mi_maquina
  250-PIPELINING
  250-SIZE 10240000
  250-VRFY
  250-ETRN
  250-STARTTLS
  250-AUTH LOGIN PLAIN
  250 8BITMIME
************************************************************************

Entonces hago en el telnet:
  STARTTLS
y me sale:
  454 TLS not available due to local problem



En /var/log/mail.log me sale este error justo después del comando STARTTLS:

************************************************************************
mi_maquina postfix/smtpd[8479]: initializing the server-side TLS engine

mi_maquina postfix/smtpd[8479]: warning: cannot get private key from 
file /etc/postfix/ssl/newreq.pem

mi_maquina postfix/smtpd[8479]: warning: TLS library problem: 
8479:error:0906D06C:PEM routines:PEM_read_bio:no start 
line:pem_lib.c:637:Expecting: ANY PRIVATE KEY:

mi_maquina postfix/smtpd[8479]: warning: TLS library problem: 
8479:error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM 
lib:ssl_rsa.c:709:

mi_maquina postfix/smtpd[8479]: cannot load RSA certificate and key data
************************************************************************


Los certificados los hice siguiendo los pasos de un Howto que resumo aquí:

1) Crear una nueva autoridad certificadora: /usr/lib/ssl/misc/CA.pl -newca
2 )Realizar la petición de un certificado: /usr/lib/ssl/misc/CA.pl 
-newreq-nodes
3) Firmar el certificado: /usr/lib/ssl/misc/CA.pl -sign
Con la salvedad de que no debemos añadir una palabra de paso al certificado 
para que el servidor no se quede bloqueado esperándola al iniciarse. Luego 
deberemos copiar tres de los ficheros resultantes del proceso al 
subdirectorio /etc/postfix/ssl/:
     mkdir /etc/postfix/ssl
     cp demoCA/cacert.pem /etc/postfix/ssl/
     cp newcert.pem /etc/postfix/ssl/
     cp newreq.pem /etc/postfix/ssl/
     chown root /etc/postfix/ssl/newreq.pem
     chmod 400 /etc/postfix/ssl/newreq.pem



En mi main.cf en lo referente a TLS tengo puesto:

************************************************************************
#Uso de certificados:
smtpd_use_tls = yes
#smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/ssl/newreq.pem
smtpd_tls_cert_file = /etc/postfix/ssl/newcert.pem
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem

smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
************************************************************************



En fin, que he googleado y lo más reseñable que he encontrado es el código en 
C de Postfix que emplea los certificados:
  http://42.pl/postfix/postfix-2.2.2/src/tls/tls_certkey.c
Concretamente el error que me sale es aquí:

  if (SSL_CTX_use_PrivateKey_file(ctx, key_file, SSL_FILETYPE_PEM) <= 0) {
	msg_warn("cannot get private key from file %s", key_file);
	tls_print_errors();
	return (0);
  }

Pero no tengo ni idea de cuál es el error.



En fin, ¿se os ocurre algo?
Reitero que salvo el tema del TLS todo lo demás funciona a la perfección.

Muchas gracias como siempre.



-- 
que a mí ni me va ni me viene... pero por comentar...



Reply to: