Loading




Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Apache 2 y SSL (solucionado)
 
27-07-2005, 10:18 AM
Mensaje: #1
Apache 2 y SSL (solucionado)
Hola. publico este mensaje por que no encontre sobre este tema algun mensaje de donde pueda ver algo para instruirme.

La cosa es asi, estoy instalando un servidor web en un Linux red hat 9, que va a tener instalado apache2 y openssl. genere mi propia CA, le genere los certificados y las llaves todo barbaro. pero la idea es que a mis sitios web solo puedan acceder aquellas personas a las cuales les doy yo un
certificado generado por mi CA, y ellos lo instalan en su navegador (windows, internet explorer). para que puedan acceder.
si yo en el archivo de configuracion /usr/local/apache2/conf/ssl.conf\" modifico estos dos parametros:
SSLVerifyClient require
SSLVerifyDepth 1
Cuando quiera acceder a una pagina web (https://midominio/mipagina) me salta una advertencia de que instale el certificado del cliente o la firma digital del cliente. y es esto lo cual no se como la puedo generar. este es el tema que tengo que solucionar. Generar el certificado o firma digital para le cliente e instalarlo en el navegador de windwos. no se como se hace.
A lo mejor estoy haciendo algo mal, por que es un tema de investigacion que tengo y es la primera ves que lo estoy haciendo. pero consulto por que estoy trabado.
Se que me falta configurar bien el ssl.conf pero dentro de todo lo que pude encontrar en internet no pude adaptarlo a lo que necesito. en realidad no logro que funcione.
Adjunte una imagen de que es lo que me sale en el internet explorer que no me deja seguir

Gracias a los que puedan ayudarme.


Archivo(s) adjuntos
.jpg  https.jpg (Tamaño: 61,82 KB / Descargas: 29)
Encuentra todos sus mensajes
 
27-07-2005, 03:43 PM
Mensaje: #2
RE: Apache 2 y SSL
Entonces, el cliente tiene el CA del servidor y lo ve sin problemas, hasta ahi, todo ok, si?
Pero al agregar SSLVerifyClient require al ssl.conf el servidor no tiene el CA del cliente, es así ?

Entonces puedes ver y verificar de acuerdo a tu entorno y lo que deseas hacer:

Client Authentication and Access Control

simple certificate-based client authentication
selective certificate-based client authentication
particular certificate-based client authentication
intranet vs. internet authentication

http://httpd.apache.org/docs/2.0/es/ssl/ssl_howto.html

No dejes de mantenernos al tanto sobre el progreso.

Saludoss
Visita su sitio web Encuentra todos sus mensajes
 
27-07-2005, 04:42 PM
Mensaje: #3
RE: Apache 2 y SSL
p_eter, Gracias por el interes en el tema, te comento revise la pagina que pones aqui, este metodo es otra manera de autenticar los usuarios.

AuthName, AuthType, AuthUserFile declaras la manera de autenticacion puede ser de tipo basico o tipo digest. Lo que hacen es pedirte un usuario y contraseña antes de ingresar al sitio.
Si alguien quiere ver de que se trata mire un poco este tuto. que lo dija bien claro tanto este tipo de autenticacion como el de las entidades certificantes.
http://www.adictosaltrabajo.com/tutorial...ure_debian

Pero mi problema esta antes de llegar a esta instancia. cuando pide el certificado si tengo seteadas las variables

SSLVerifyClient require
SSLVerifyDepth 1

no me deja ingresar me muestra la advertencias que se ven en la imgen que esta adjunta en este post.

Si yo tengo las variables en:
SSLVerifyClient none
#SSLVerifyDepth 1
me permite instalar el certificado y puedo entrar.
alguien me facilitaria mas si me puede pasar un mail de hotmail y asi lo resolvemos mas rapido. una ves resuelto subo el tuto a este post. estoy documentando todo de como resolverlo.
Gracias
Encuentra todos sus mensajes
 
27-07-2005, 07:06 PM
Mensaje: #4
RE: Apache 2 y SSL
Ok, acotando y paso a paso
Tienes el certif del Server y el cliente lo entiende ( lo corriente).
Ahora la otra parte, procurar un certif para el cliente y que el navegador se lo envie al server...
http://www.openssl.org/support/faq.html
10. Why can\'t I use OpenSSL certificates with SSL client authentication?
12. How do I install a CA certificate into a browser?
Visita su sitio web Encuentra todos sus mensajes
 
28-07-2005, 11:20 AM
Mensaje: #5
RE: Apache 2 y SSL
Dentro de esta ayuda a traves de estos link pude llegar a darme cuenta que el error esta en que el sevidor no esta generando los certificados clientes.
corriendo el comando
openssl s_client -connect 192.168.1.117:443 -prexit

me tira un listado de los certificados de clientes
me muestra muchas lineas entre estas los datos del certificado que genere, las unicas lineas de error que pude ver son estas

.....
verify error:num=18:self signed certificate
....
No client certificate CA names sent
.....

Ahora estoy buscando por internet para ver si algo sale de esto, lo subo para que mas o menos se informen de como es el problema.
Lo que me parece raro que cuando yo no le pongo que no requiera el certificado, anda todo bien, como lo chequeo? si yo instalo el certificado e ingreso al sitio, lo hago directamente, pero si desinstalo el certificado y quiero ingresar me pide instalar el certificado y despues puedo ingresar

gracias
Encuentra todos sus mensajes
 
28-07-2005, 06:06 PM
Mensaje: #6
RE: Apache 2 y SSL
Hola, neopel.
Antes que nada agradecerte por instalar este interesante tema.
Respecto a pasar un mail, se desvirtuaría el propósito de los foros que es participar abiertamente.
No estaría mal que lo que tienes documentado lo publiques para acercarnos con mayor detalle al problema, aunque sea un borrador [Draft].
Ten en cuenta que hacia el fin de semana ya habrá mas tiempo para participar activamente.
Peter.
Visita su sitio web Encuentra todos sus mensajes
 
28-07-2005, 06:10 PM
Mensaje: #7
RE: Apache 2 y SSL
Me parece que hay un error en pensar que el servidor generará los certificados cliente, creo te expresaste mal o no te supe interpretar.

Repasando: al no requerir el certificado cliente, se usa solo el del server; o sea que el cliente verifica la autenticidad del servidor y de ahí en mas se encripta la comunicación.

Al usar SSLVerifyClient requiere, el servidor requiere que ademas sea el cliente quien se autentique. Es decir que el cliente tiene la clave privada y enviará la pública cuando se lo requiera el servidor.
Visita su sitio web Encuentra todos sus mensajes
 
28-07-2005, 07:22 PM
Mensaje: #8
RE: Apache 2 y SSL
P_eter el tema del mail no fue con el fin de desvirtuar el foro, solo fue con el objeto de acelerar un poco esto ya que lo estoy necesitando con urgencia. pido disculpas por esto


Aqui paso en un estilo borrador todo lo que estoy haciendo, desde el principio.
Mi server web es un red hat 9 con ip 192.168.1.117, su nombre es maria
Mi pagina es credinet y accedo http://192.168.1.117/credinet

El openssl lo isntale como RPM desde el cd del Red Hat 9. agrege el paquete.
directorio /usr/ssl/....


El apache lo compile de esta manera
Apache 2.0.54
Extract -----> $ tar zxvf httpd-2.0.52.tar.gz

Configure ---> $./configure --prefix=/usr/local/apache2 --enable-proxy=shared --with-mpm=prefork --enable-so --enable-auth-digest --enable-ssl

Compile-----> $ make

Install -----> $ make install

aparte de lo que voy a detallar aca abajo al apache le agregue las lineas para que funcione php que ahora no viene al caso..

Modificar el script por el cual el apache inicia, para que inicie con SSL

/usr/local/apache2/bin/apachectl

la linea
HTTPD=\'/usr/local/apache2/bin/httpd\'
la deje asi
HTTPD=\'/usr/local/apache2/bin/httpd -DSSL\'

----------------------------------------------------------------------
De aqui para abajo, eh probado muchas formas de crearlos por internet figuran cientos de maneras pero ninguna me resulto para lo que estamos discutiendo en este foro.
aqui presento una de las maneras y luego presentare otra
----------------------------------------------------------------------
1º Manera

*- Creamos un certificado root

$ openssl genrsa -des3 -out server.key 1024

Ingresamos el password

$ openssl rsa -in server.key -out server.pem

Utilizar la misma contraseña en el paso 2.

*- Generar una petición de firma del certificado

$ openssl req -new -key server.key -out server.csr

- complete los valores para el país, estado, ciudad
- el nombre común es el Domain Name o el IP del servidor. en este caso ingrese ====>192.168.1.117

Generar un Certificado Self-Signed

$ openssl x509 -req -days 360 -in server.csr -signkey server.key -out server.crt

Usar el mismo password que usamos en el PEM passpharse

Instalar las claves privadas y certificados
creo los directorios
$ mkdir /usr/local/apache2/conf/ssl.crt
copio la clave
$ cp server.crt /usr/local/apache2/conf/ssl.crt/server.crt
creo los directorios
$ mkdir /usr/local/apache2/conf/ssl.key
copio la clave
$ cp server.key /usr/local/apache2/conf/ssl.key/server.key

--------------------------------------------------------------------
Fin de la primer manera
--------------------------------------------------------------------
*****************************************************
--------------------------------------------------------------------
La 2º manera- esta segunda manera requiere que este generada la primera ya que se utiliza el server.key (clave privada)

me voy al directorio

cd /usr/ssl/misc/

Crear una nueva CA

CA.sh -newca

A Generar certificado
$openssl req -nodes -new -keyout cliente.key -out cliente.csr
Certificado del Primer Cliente generado
$chmod 0600 cliente.key

Firmar Certificado del primer cliente
openssl ca -out cliente.crt -in cliente.csr -outdir /usr/local/apache2/conf/ssl.crt -cert server.crt -keyfile server.key -config /usr/ssl/openssl.cnf

luego traslado cliente.key a /usr/local/apache2/conf/ssl.key

------------------------------------------------------------------
Fin de la segunda manera
------------------------------------------------------------------
El /usr/local/apache2/conf/ssl.conf queda como esta apuntando al server.key y server.crt
en realidad probe apuntandolo al cliente.crt y cliente.key pero nada.

y en el /usr/local/apache2/conf/httpd.conf el sitio quedo de esta manera.

Alias /credinet \"/var/www/credinet/\"
<Directory \"/var/www/credinet\">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex Login.htm
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCACertificatePath /usr/local/apache2/conf/ssl.crt
SSLRequireSSL
</Directory>

---------------------------------------------------------------------
Esto es en resumidas palabras lo que saque de muchos manuales y con lo cual mas me hacerque a lo que necesitaba, por cualquier duda seguiremos peleandola.
Encuentra todos sus mensajes
 
29-07-2005, 02:02 AM
Mensaje: #9
RE: Apache 2 y SSL
Disculpa tú, suena mas \"desvirtuar\", no? jajaja, pero en definitiva no es mas que abrir el tema a la participación grupal.

Bueno, estaba por enviarte algo mas de http://www.modssl.org antes de tu último post, pero debí interrumpir por otro asunto.
Aunque veo que ya has estado trabajando sobre ello.

¿Me pregunto si del lado del cliente tiene su certificado para que el explorador se lo envie al server?

De no ser así, quizás te sirva este simple artículo
http://www.freebsddiary.org/openssl-clie...cation.php

ver tambien: http://www.freebsddiary.org/phorum/read....cle_id=481

Saludoss


Archivo(s) adjuntos
.gif  ssl_intro_fig1.gif (Tamaño: 5,6 KB / Descargas: 8)
Visita su sitio web Encuentra todos sus mensajes
 
29-07-2005, 02:41 AM
Mensaje: #10
RE: Apache 2 y SSL
Bueno resumido lo que te iba a enviar, es lo siguiente:
( asi comenzamos implementando lo mas sencillo para luego ir por más, este no es un tema demasiado trivial, no? )

Caso intranet, comunidad cerrada:
crear certificados del cliente firmados por su propio certificado de CA ca.crt y entonces verifican a los clientes contra este certificado.

httpd.conf

# require a client certificate which has to be directly
# signed by our CA certificate in ca.crt
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile conf/ssl.crt/ca.crt

----------------------------
SSLCACertificateFile Directive
Description: File of concatenated PEM-encoded CA Certificates for Client Auth
Syntax: SSLCACertificateFile file-path
Context: server config, virtual host
Status: Extension
Module: mod_ssl

This directive sets the all-in-one file where you can assemble the Certificates of Certification Authorities (CA) whose clients you deal with. These are used for Client Authentication. Such a file is simply the concatenation of the various PEM-encoded Certificate files, in order of preference. This can be used alternatively and/or additionally to SSLCACertificatePath.
Example

SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt
-----------------------------------------------------------------------

Y dejamos para mas tarde la segmentación de acceso al servidor y la discriminación de clientes particulares.
Visita su sitio web Encuentra todos sus mensajes
Tema cerrado 


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  [ALTO] Apache + SSL p_eter 0 1.870 11-11-2005 06:24 AM
Último mensaje: p_eter

Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)
Contáctanos | Portal de Noticias | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS