Despues de pelear un par de semanas y con la poca info sobre ejemplos resueltos de implentacion de claves publicas y privadas con certificados de autenticacion de clientes. Les paso el:.....
Manual para instalar apache y ssl
El openssl lo isntale como RPM desde el cd del Red Hat 9. agrege el paquete.
directorio /usr/ssl/....
Apache 2.0.54
Instalacion del apache
Extract -----> $ gzip -d httpd-2.0.54.tar.gz
$ tar xvf httpd-2.0.54.tar.gz
Configure ---> $./configure --prefix=/usr/local/apache2 --enable-proxy=shared --with-mpm=prefork
--enable-so --enable-auth-digest --enable-ssl
Prefix es el directorio que instala por defecto y enabeld proxy es para poder leer sitios de otra
maquina por ejemplo el 1.117
Compile-----> $ make
Install -----> $ make install
Personalizar ---> $ vi /usr/local/apache2/conf/httpd.conf
Test --------> $ /usr/local/apache2/bin/apachectl start
Debajo de la línea # LoadModule foo_module modules/mod_foo.so agregamos:
LoadModule proxy_module modules/mod_proxy.so
# AddModule mod_proxy.c
*******************************************************************************
Si se quiere hacer SSL de aca para abajo sino con lo de arriba tiene que andar
*******************************************************************************
Modificar el Archivo mime.types para incluir los controladores para PHP
vi /usr/local/apache2/conf/mime.types
Agregar la siguiente linea
application/x-httpd-php .php
Modificar el script por el cual el apache inicia, para que inicie con SSL
$> vi /usr/local/apache2/bin/apachectl
Encontrar esta Linea
HTTPD=\'/usr/local/apache2/bin/httpd\'
y cambiarla por esta
HTTPD=\'/usr/local/apache2/bin/httpd -DSSL\'
*********************************************************
Creacion de los certificados, Claves publicas y privadas.
*********************************************************
Creamos un certificado root, Ingresamos el password
$ openssl genrsa -des3 -out clave.key 1024
Generar una petición de firma del certificado
$ openssl req -new -key clave.key -out certificado.csr
Enter pass phrase for clave.key: Ingresamos la clave del punto anterior
Country Name (2 letter code) [AU]:AR
State or Province Name (full name) [Some-State]

rovincia
Locality Name (eg, city) []:Santa Fe
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Basoc SA
Organizational Unit Name (eg, section) []:Sistemas
Common Name (eg, YOUR name) []:192.168.1.117 (Ip o Nombre del servidor Web)
Email Address []:leo.basoc@basoc.com.ar
A challenge password []:fruta
An optional company name []:fruta SA
Generar un Certificado Autofirmado
$ openssl x509 -req -days 360 -in certificado.csr -signkey clave.key -out certificadocliente.crt
Instalar las claves privadas y certificados
$ mkdir /usr/local/apache2/conf/ssl.crt
$ cp certificadocliente.crt /usr/local/apache2/conf/ssl.crt/certificadocliente.crt
$ mkdir /usr/local/apache2/conf/ssl.key
$ cp clave.key /usr/local/apache2/conf/ssl.key/clave.key
Generar la clave para exportarla al cliente. Este archivo es el que tenemos que instalar en el
cliente windows(Mas abajo esta como instalarlo)
$ openssl pkcs12 -export -in server.crt -inkey server.key -out serverfruta.p12
Enter pass phrase for clave.key: (Password de nuestra Clave.key)
Enter Export Password: (Password que nos va a pedir cuando instalemos el certificado en el
cliente)
Verifying - Enter Export Password: (Repetimos el password)
luego vamos al archivo de configuracion
/usr/local/apache2/conf/ssl.conf
Estas lineas tienen que quedar asi
ServerName 192.168.1.117(IP o Nombre del servidor WEB)
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/certificadocliente.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/clave.key
Todo lo demas queda como esta.
Estas dos lineas chequar que esten comentadas son las que requieren autenticacion del cliente,
esto luego lo agregamos en cada sitio particular dependiendo de quien lo requiera
#SSLVerifyClient require
#SSLVerifyDepth 5
luego vamos al archivo de configuracion
/usr/local/apache2/conf/httpd.conf
En la declaracion del sitio la configuracion tiene que esta de esta manera
Alias /xxx \"/var/www/xxx/\"
<Directory \"/var/www/xxx\">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex Login.htm
SSLVerifyClient require (Para que requiera autenticacion de cliente)
SSLVerifyDepth 1
SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/certificadocliente.crt
SSLCACertificatePath /usr/local/apache2/conf/ssl.crt
SSLRequireSSL (para que unicamente trabaje con https y no con http)
SSLOptions +OptRenegotiate (Este parametro lo necesite por que no funcionaba el method get y post)
</Directory>
Ahi ya estariamos en condiciones de iniciar el apache
$ /usr/local/apache2/bin/apachectl startssl
Apache/2.0.54 mod_ssl/2.0.54 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.
Server 192.168.1.117:443 (RSA)
Enter pass phrase: (Ingresamos el password de la clave.key)
Ok: Pass Phrase Dialog successful.
Para corroborar si esta corriendo corremos el siguiente comando
$ ps -A | grep httpd
Ahora pasamos la clave publica para la maquina que queremos que pueda acceder.
certcliente.p12
Para instalarla en el internet explorer:
abrimos un IE vamos al menu
Herramientas/Opciones de Internet
Solapa:
Contenido
Boton Certificados.
Iportar/Siguiente/
Buscamos el certcliente.p12 / Siguiente
Ingresamos la contraseña que pusimos cuando generamos este certificado
Tildamos los combos a conveniencia.
/siguiente
En el almacen del certificado vamos a la opcion \"Colocar todos los certificados en el siguiente
almacen\"/examinar y marcamos la carpeta \"Personal\" /Aceptar / Siguiente
/Finalizar
Sale una advertencia \"Importando una nueva clave privada de intercambio\" / Aceptar y lo importa.
Luego tiene que aparecer en la solapa \"Personal\"
Ahi estamos en condiciones de abrir el sitio ejemplo \"https://192.168.1.117/xxx\", nos muestra una
advertencia del certificado, le damos que si. Luego nos muestra con que clave queremos acceder,
selecionamos la nuestra. Nos informa que estamos trabajando con claves de seguridad, Aceptamos y
luego podemos ingresar al sitio.
Para que no nos muestre la advertencia del certificado, cuando aparece / Ver Certificado /
Instalar Certificado. Siguietne / Siguiente / Finalizar / nos muestra la info del certificado /
Si. Tener en cuanta que si la volvemos a ingresar y nos pide el certificado otra ves se es por
que la valides de este es despues de un dia de isntalado, cualquier cosa probar con cambiar la
hora para corroborar esto.
******************************************************************************** **********
Con esto tiene que andar la configuracion de apache con Claves publicas y privadas, con la
implementacion de certificados.
******************************************************************************** **********
Sugerencias:
*- Hacer copia de seguridad de clave.key-
*- Por cada sitio generar un certificado .crt y .p12
Leo