OpenSSL es un proyecto de software desarrollado por los miembros de la comunidad Open Source para libre descarga y está basado en SSLeay desarrollado por Eric Young y Tim Hudson. Consiste en un robusto paquete de herramientas de administración y librerías relacionadas con la criptografía, que suministran funciones criptográficas a otros paquetes como OpenSSH y navegadores web (para acceso seguro a sitios HTTPS). Estas herramientas ayudan al sistema a implementar el Secure Sockets Layer (SSL), así como otros protocolos relacionados con la seguridad , como el Transport Layer Security (TLS). Este paquete de software es importante para cualquiera que esté planeando usar cierto nivel de seguridad en su máquina con un sistema operativo Libre basado en GNU/Linux.
Tengo un pequeño servidor Apache, hosteado en una de mis maquinas.
En el cual albergo archivos que necesito que sean facilmente accesibles en cualquier lugar donde me encuentre. No es la solución mas optima, pero ya me acostumbre a ello, por lo cual, es algo habitual en mi.
Hace unos días se me ocurrio instalarle soporte para SSL, y así poder usar HTTPS, como protocolo para la conexión. Detallare como lo hice.
Una vez instalado Apache2, instalamos lo siguiente:
#: apt-get install openssl ssl-cert
Una vez listo, activamos el modulo SSL de Apache de la siguiente manera:
#: a2enmod ssl
Y generamos el certificado con el siguiente comando:
#: openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
El certificado ya esta generado, y tendra una valides de 365 días (1 año).
Cambiamos los permisos del certificado, para que solo pueda ser accedido por root (quién lo creo).
# chmod 600 /etc/apache2/apache.pem
Editamos la configuración del servidor Apache, primero el fichero
/etc/apache2/ports.conf añadiendo la siguiente línea.
Listen 443
De esta forma, ponemos a la escucha el puerto 443, para aceptar conexiones SSL.
Y modificamos el archivo de nuestro virtual host y cambiamos la línea
NameVirtualHost *
Por estas dos:
NameVirtualHost *:80 NameVirtualHost *:443
Y añadimos dentro del tag:
SSLEngine on SSLCertificateFile /etc/apache2/apache.pem
Si todo salio bien, deberian poder conectar a https://localhost/ desde cualquier browser, dos concejos. Recuerden abrir el puerto 443 en el router o firewall (si usan alguno) y acepten el certificado.

Hola!
He probado todo esto pero me da error con
NameVirtualHost *:443
Estoy con Ubuntu 8.10 y dice que no soporta NameVirtualHost ¿hay alguna solución?
Gracias.