Problema de certificado OpenSSL

Resuelto
kakashi05 Mensajes publicados 195 Estado Miembro -  
 Manu -
Bonjour,
j'essai de mettre en place un server apache sur Mandriva 2009 et j'aimerai bien utiliser un openssl apres voir creer un certificat et lorsque j'essai de me connecté un des mes VitrualHost en https j'ai le message d'erreur suivant:

www.secure.com:443 utilise un certificat de sécurité invalide.

Le certificat n'est pas sûr car il est auto-signé.

(Code d'erreur : sec_error_untrusted_issuer)

et lorsque je tapes la commande suivant pour verifier j'oubtiens

[root@localhost conf]# openssl s_server -cert certificat.pem -www
unable to load server certificate private key file
4464:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: ANY PRIVATE KEY

si quelqu'un a une idee merci
Configuration: Linux Mandriva Firefox 3.0.3

7 respuestas

  1. kakashi05 Mensajes publicados 195 Estado Miembro 32
     
    En realidad, el servidor Apache es solo un pequeño ejercicio que estoy haciendo en casa para repasar un poco.

    Te explico un poco lo que tuve que hacer.

    Edité el siguiente archivo en conf

    #vi /etc/httpd/conf/httpd.conf

    agregué las siguientes líneas:

    <VirtualHost *:443>
    DocumentRoot /var/www/secure.com
    ServerName www.secure.com

    SSLCertificateFile /etc/httpd/conf/certificat.pem
    sslcertificatekeyfile /etc/httpd/conf/server.key
    SSLEngine on

    <Directory /var/www/secure.com>
    Options +Indexes
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>

    puis añadí un certificado con el siguiente comando

    #openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/httpd/conf/certificat.pem -out /etc/httpd/conf/server.key

    puis en el archivo httpd.conf quité el comentario de la línea

    LoadModule ssl_module modules/mod_ssl.so

    luego edité el archivo vi /etc/hosts

    127.0.0.1 www.secure.com

    y cuando escribo en mi terminal
    #firefox https://www.secure.com

    me aparece el siguiente mensaje de error y es realmente lo que me molesta

    www.secure.com:443 utiliza un certificado de seguridad no válido.

    El certificado no es confiable porque es autofirmado.

    (Código de error: sec_error_untrusted_issuer)

    bueno, espero que hayan entendido un poco mi configuración; me digo que quizá no haya configurado algo o lo haya hecho mal.

    Si alguien tiene alguna idea, gracias.
    1
  2. kakashi05 Mensajes publicados 195 Estado Miembro 32
     
    El problema estaba resuelto; solo hacía falta hacerlo aceptar por el navegador. Gracias
    1
  3. kakashi05 Mensajes publicados 195 Estado Miembro 32
     
    Un otro punto cuando se hace

    [root@localhost conf]# /etc/init.d/httpd restart
    Shutting down httpd: [ OK ]
    Starting httpd: Warning: DocumentRoot /srv/www/secure.com does not exist
    [Sat Nov 29 13:35:18 2008] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
    [Sat Nov 29 13:35:18 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
    [ OK ]

    tenía un pequeño conflicto se arregló

    [root@localhost conf]# /etc/init.d/httpd restart
    Shutting down httpd: [ OK ]
    Starting httpd: Warning: DocumentRoot /srv/www/secure.com does not exist
    [Sat Nov 29 13:35:18 2008] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
    [Sat Nov 29 13:35:18 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
    [ OK ]
    mais lorsque j’exécute la commande de test c’est toujours le même message

    [root@localhost conf]# openssl s_server -cert certificat.pem -www
    unable to load server certificate private key file
    5373:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: ANY PRIVATE KEY
    0
  4. kakashi05 Mensajes publicados 195 Estado Miembro 32
     
    Después de algunas modificaciones obtengo

    [root@localhost conf]# openssl s_server -cert certificado.pem -www
    unable to load server certificate private key file
    6105:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: ANY PRIVATE KEY
    0
  5. kakashi05 Mensajes publicados 195 Estado Miembro 32
     
    Alguien tiene una idea
    0
    1. Manu
       
      Hola, No estoy seguro de haberlo entendido todo, pero

      El certificado no es seguro porque es autofirmado
      significa que están usando para el servidor un certificado de autoridad de certificación. Estos certificados solo deben usarse para firmar certificados de servidor o de cliente.

      En OpenSSL primero deben crear una autoridad (certificado autofirmado), y con este certificado deben crear el certificado del servidor. Este último debe tener el mismo nombre que su servidor (¿realmente srv/www/secure.com es su propio servidor?) y es la clave privada (y no el certificado) la que deben colocar en el servidor.

      También tienen problemas de compartir http(80)/https(443), pero no soy experto.

      Manu
      0
  6. Manu
     
    Hola de nuevo,

    Dos rectificaciones:
    - en el servidor debes colocar la clave privada y el certificado del servidor.
    - el certificado del servidor debe estar a nombre del servidor, por lo que si entiendo bien www.secure.com

    Manu
    0
    1. lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
       
      Hola,

      ¿Una clave privada no debe permanecer privada?
      ¿No es más bien la clave pública la que debe enviarse al servidor?
      --
      106485010510997108
      0
      1. Manu > lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención  
         
        Hola,

        ¿Una clave privada no debe permanecer privada?
        ¿No es más bien la clave pública la que debe enviarse al servidor?


        Por supuesto que la clave privada debe ser privada, es decir, conocida solamente por su propietario, aquí el servidor.

        Una clave de servidor sirve para autenticar el servidor, es decir, permitir al cliente estar seguro de no dirigirse a un servidor no auténtico. En la fase de conexión, el cliente envía una información aleatoria, el servidor cifra esa información con su clave privada y la envía al cliente en forma cifrada junto con el certificado (que contiene la clave pública). El cliente puede verificar el certificado porque está establecido a nombre del servidor y está firmado por una autoridad conocida (*) y puede verificar que el rechifrado del valor cifrado recibido devuelve el número aleatorio inicial. El cliente está entonces seguro de que quien le respondió poseía la clave privada, por lo tanto que es el servidor auténtico.

        (*) me olvidé de decir que el certificado de la autoridad de certificación debe estar en el almacén de certificados del cliente.

        Manu
        0
      2. lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571 > Manu
         
        Hola,

        Ups, leí por encima ;-)
        --
        106485010510997108
        0
      3. seth > Manu
         
        Hola, tengo una pequeña pregunta: si el servidor cifra el mensaje con su clave privada y lo devuelve al cliente, ¿cualquiera puede interceptar este mensaje y descifrarlo gracias a la clave pública del servidor…¿No? Además, ¿no se supone que hay que cifrar un mensaje a enviar con la clave pública del destinatario? No lo he seguido muy bien ese pasaje…
        Gracias por tu respuesta
        0
  7. Manu
     
    Hola,

    Hola, ¿tendría una pequeña pregunta: si el servidor cifra el mensaje con su clave privada y lo devuelve al cliente, cualquiera podría interceptar este mensaje y descifrarlo gracias a la clave pública del servidor...No

    Sí.

    Pero, se trataba de la fase de autenticación recíproca, y el mensaje del que se habla es una información aleatoria generada por el cliente. ¿Qué beneficio obtendría un espía que escuchara? Solo el cliente puede compararla con el valor original, lo que le permite verificar que su interlocutor posee la clave privada de la que él (el cliente) tiene la clave pública.

    Manu
    0