configurar apache2 con open SSL (Solucionado)

Imagen de kraquem
0 puntos

Hola a todos por favor necesito ayuda para hacer funcionar open SSL on apache 2 en ubuntu 8.04 instalé según­ manual pero cuando reinicio apache me da el siguiente error

/etc/init.d/apache2 force-reload
Syntax error on line 54 of /etc/apache2/sites-enabled/000-default:
Invalid command 'openssl', perhaps misspelled or defined by a module not included in the server configuration

Pienso que podría ser debido a que en el manual indica el archivo ssl en /etc/apache2/sites-enabled/ssl no existe el dicho archivo ya que como en el manual indicaba aquello, si no existe ¿es necesario crear ese archivo? solamente existe el fichero @000-default en vez de ello modifiqué en /etc/apache2/mods-enabled/ dentro esa carpeta existen los ficheros @ssl.conf y @ssl.load y ahí modifiqué el archivo @ssl.conf y le añadí­ esto "SSLEngine On" y esto "SSLCertificateFile /etc/apache2/apache.pem"

En fin parece que el manual estaba destinado para una versión diferente de Ubuntu o de apache, la que yo estoy usando es Ubuntu 8.04 con Apache2 Existe algún otro manual para esa versión de Ubuntu? alguien podría por favor indicarme donde puedo encontrar un manual que me permita hacer funcionar Open SSL con apache2 en Ubuntu 8.04

Desde ya gracias por la ayuda a todos.

Imagen de jm507
+1
0
-1

Saludos!!!...Cuando vas habilitar un sitio con soporte SSL debes tener claro ciertas cosas,una vez hayas terminado de realizar los certificados, la Autoridad Certificadora debes saber que cuando realizas todo eso se crean unos archivos que son necesarios para apache, debes indicarla a apache donde estan ubicados estos archivos mediante un virtual host...Entonces lo que tienes que hacer es lo siguiente...Luego de generara los certificados y todo eso debes añadir el modulo ssl para apache esto se hace con a2enmod ssl; luego ve a /etc/apache2/sites-available/default, editalo debes tenerlo de la siguiente manera:

Nota: estos carateres ([]) indican abre y cierre para la configuracion del virtualhost debes reemplazarlo por < >

NameVirtualHost *:80
[VirtualHost *:80]
ServerAdmin webmaster@localhost
DocumentRoot /var/www/sitioweb
[Directory /]
Options FollowSymLinks
AllowOverride None
[/Directory]
[Directory /var/www/sitioweb/]
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
[/Directory]

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
[Directory "/usr/lib/cgi-bin"]
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
"SSLRequireSSL"
[/Directory]

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
[Directory "/usr/share/doc/"]
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
[/Directory]

[/VirtualHost]

Ahora debes crear otro virtualhost que será el que estará configurado para soporte SSL, puedes llamarlo como tu quieras por ejemplo sitiossl; editalo y añade lo siguiente:

NameVirtualHost *:443
[VirtualHost *:443]
ServerAdmin webmaster@localhost
DocumentRoot /var/www/sitioweb
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/servidor-cert.pem //este nombre depende de como se llama tu archivo que contiene el certificado
SSLCertificateKeyFile /etc/apache2/ssl/serv-priv.pem //este nombre depende de como se llama tu archivo que contiene el la clave del certificado
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
ServerName nombredelsitioweb.com
[Directory "/var/www/sitioweb"]
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
SSLRequireSSL
[/Directory]
[/VirtualHost]

Ahora ejecuta a2ensite sitiossl. y veras que apache te indica que debes recargar la configuracion para ello ejectuta: /etc/init.d/apache2 reload y despues /etc/init.d/apache2 start.

Ya puedes acceder a la web mediante https://nombredelsitioweb.com y listo . Sitienes algunas dudas ya sabes que hacer
Primera Comunidad GNU/Linux-Software Libre en Panamá-Chiriquí, visita www.gnupanama.com y danos tu opnion..Saludos!!!

+1
0
-1

Promocionando el Software Libre. GNUPanama.

Imagen de kraquem
+1
0
-1

Hola gracias por responder tan pronto, parece que tenias razón me complique al modificar el archivo en etc/apache2/sites-available/default
y es que no tengo mucha experiencia en esto del open ssl, por favor podrias detallar un poco mas, por si es de ayuda este es mi archivo default en etc/apache2/sites-available/default:

NameVirtualHost *

	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www/
	
		Options FollowSymLinks
		AllowOverride None
	
	
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    


También pude comprobar que en mi archivo /etc/apache2/ports.conf ya tiene especificado en que puerto debe escuchar.

Listen 80


    Listen 443

Espero sea suficiente para la ayuda, una vez mas gracias por la ayuda.
Un saludo.

+1
0
-1
Imagen de kraquem
+1
0
-1

Hola gracias por responder tan pronto, parece que tenias razón me complique al modificar el archivo en etc/apache2/sites-available/default
y es que no tengo mucha experiencia en esto del open ssl, por favor podrias detallar un poco mas, por si es de ayuda este es mi archivo default en etc/apache2/sites-available/default:

NameVirtualHost *

	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www/
	
		Options FollowSymLinks
		AllowOverride None
	
	
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    



También pude comprobar que en mi archivo /etc/apache2/ports.conf ya tiene especificado en que puerto debe escuchar.

Listen 80


    Listen 443


Espero sea suficiente para la ayuda, una vez mas gracias por la ayuda.
Un saludo.

+1
0
-1
Imagen de jm507
+1
0
-1

A continuacón te explico como configurar un site con soporte ssl...

Primero que nada debes crearte una Autoridad Certificadora (asumo que ya esta instalado openssl):

openssl req -x509 -newkey rsa:2048 -keyout cackey.pem -days 3650 -out cacert.pem

Crea Certificado Digital

openssl genrsa -des3 -out keypriv.pem -passout pass:tucontraseña 2048

Genera Certificado

openssl req -new -subj "/DC=tusitioweb"/OU=com/CN=departamento" -key keypriv.pem -passing pass:tucontraseña -out peticion.pem

Crea un fichero con el siguiente contenido (llamalo por ejemplo fichero.txt):

basicConstraints= critical,CA:FALSE
extendedKeyUsage= servAuth

Realiza el Certificado

openssl x509 -CA cacert.pem -CAkey cakey.pem -req -in peticion.pem -days 3650 -extfile config1.txt -sha1 -CAcreateserial -out servidor.pem

Ahora luego de lo anterior crea un fichero llamado sitiossl (por ejemplo) en /etc/apache2, luego copia keypriv.pem y servidor.pem a este directorio (estoy suponiento que estas en /var/www/tusitioweb puede variar)

cd /etc/apache2
mkdir sitiossl
cd /var/www/tusitioweb
cp servidor.pem keypriv.pem /etc/apache2/sitiossl

Lo siuiente es la creacion del virtual host realizandolo como te lo dije anteriormente, con la unica variante que debes modificar la ubicacion del document root y del certificado y la clave...
Primera Comunidad GNU/Linux-Software Libre en Panamá-Chiriquí, visita www.gnupanama.com y danos tu opnion..Saludos!!!

+1
0
-1

Promocionando el Software Libre. GNUPanama.

Imagen de kraquem
+1
0
-1

Hola seguí­ el manual al pié de la letra, al momento de ejecutar a2ensite me sale el siguiente error:

root@amd:~# a2ensite
Which site would you like to enable?
Your choices are: default sites-available_back
Site name? localhost
This site does not exist!

yo creo que se debe a que estoy trabajando de forma local sin conexión a internet, como en una intranet,cuando intento reiniciar apache ignorando el mensaje de 2ensite me sale el siguiente error.

root@amd:~# /etc/init.d/apache2 restart
 * Restarting web server apache2                                                                                                                                                 * We failed to correctly shutdown apache, so we're now killing all running apache processes. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now!
Syntax error on line 51 of /etc/apache2/sites-enabled/000-default:
SSLCertificateFile takes one argument, SSL Server Certificate file (`/path/to/file' - PEM or DER encoded)

Tal vez no tenga mucho que ver, pero estoy intentando hacer correr el servidor sin conexión a internet, localmente.
por si sirve de algo mi archivo default que se encuentra en /etc/apache2/sites-aviable/

NameVirtualHost *:80

	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www/
	
		Options FollowSymLinks
		AllowOverride None
	
	
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
		"SSLRequireSSL"
	

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    



NameVirtualHost *:443

ServerAdmin webmaster@localhost
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/servidor.pem //este nombre depende de como se llama tu archivo que contiene el certificado
SSLCertificateKeyFile /etc/apache2/ssl/keypriv.pem //este nombre depende de como se llama tu archivo que contiene el la clave del certificado
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
ServerName localhost

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
SSLRequireSSL



Desde ya gracias a todos por la ayuda.
Un saludo.

+1
0
-1
Imagen de jm507
+1
0
-1

El problema que tienes es porque al momento de definir ServerName Localhost debes cambiarlo por el
ServerName que definiste cuando estabas creando el certifido SSL; además el ServerName debe ir en el otro Virtualhost.

Te recomiendo que crees los virtualhost por separado como te indico en el manual..

Para el servername si por ejemplo se llama www.sitiowebssl.com debes ponerlo en /etc/hosts como sigue:
127.0.0.1 localhost
192.168.10.56 www.sitiowebssl.com

La direccion IP de arriba debes cambiarla por la tuya. En resumen tu virtualhost default debe estar mas o menos asi:

    NameVirtualHost *:80
    
    	ServerAdmin webmaster@localhost
    	DocumentRoot /var/www/sitioweb
    	
    		Options FollowSymLinks
    		AllowOverride None
    	
    
    	Options Indexes FollowSymLinks MultiViews
    	AllowOverride None
    	Order allow,deny
    	allow from all
    	# This directive allows us to have apache2's default start page
    	# in /apache2-default/, but still have / go to the right place
    	#RedirectMatch ^/$ /apache2-default/
    

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    
    	AllowOverride None
    	Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    	Order allow,deny
    	Allow from all
    	"SSLRequireSSL"
    

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    
    	Options Indexes MultiViews FollowSymLinks
    	AllowOverride None
    	Order deny,allow
   	Deny from all
    	Allow from 127.0.0.0/255.0.0.0 ::1/128
    
    

Y el otro sitio (el que contiene el ssl):

NameVirtualHost *:443

ServerAdmin webmaster@localhost
DocumentRoot /var/www/sitioweb
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/servidor-cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/serv-priv.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
ServerName www.sitiowebssl.com

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
SSLRequireSSL

Eso es todo si has seguido todo al pie de la letra ya tienes Apache con ssl funcionando...Saludos..:::GNUPanama:::..

Primera Comunidad GNU/Linux-Software Libre en Panamá-Chiriquí, visita www.gnupanama.com y danos tu opnion..Saludos!!!

+1
0
-1

Promocionando el Software Libre. GNUPanama.

Imagen de kraquem
+1
0
-1

Hola conseguí configurar apache con SSL por lo menos parcialmente, al reiniciar el ordenador apache no estaba iniciando entonces hice un

root@amd:~# /etc/init.d/apache2 start
 * Starting web server apache2                                                                                                      [Mon Aug 25 20:32:04 2008] [warn] NameVirtualHost *:443 has no VirtualHosts
[Mon Aug 25 20:32:04 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs                                                             [fail]

Buscando encontre alguien con el mismo error y le dijeron que el problema era en los virtual host mas precisamente el el NameServer yo tengo mi NameServer como www.prototype.com pero no cuento con conexión a internet mucho menos un dominio, simplemente use ese nombre por que parecia que apache pedia un dominio, antes de ello estaba con localhost.

También parece que el puerto que usa apache esta siendo ocupado por otra aplicación, en fin como no se mucho también tendré que verlo con netstad, pero eso será hasta volver a casa por lo pronto a rrecurrir a la ayuda ;-)

Gracias por adelantado a todos.

+1
0
-1
Imagen de jm507
+1
0
-1

Ese no es el problema...el problema es que apache ya esta ejecutandose pero como tienes el openssl instalado y configurado junto con apache;
este pide una contraseña al iniciarse, y como apache no la puede obtener este no inicia bn...Por lo tanto simplemente debes localizar el PID del proceso,
matarlo y volver a iniciar apache...

hazlo así:

#pidof apache2
5261
#kill -9 5261
#/etc/init.d/apache2 start

Como ves lo unico que tienes que hacer es matar el proceso que no termino de ejecutar apache (5261) y volver a iniciar apache...Eso es todo..

Primera Comunidad GNU/Linux-Software Libre en Panamá-Chiriquí, visita www.gnupanama.com y danos tu opnion..Saludos!!!

+1
0
-1

Promocionando el Software Libre. GNUPanama.

Imagen de kraquem
+1
0
-1

Si me funcionó tenias razón solamente era matar el proceso y reiniciar apache muchas gracias por la ayuda y paciencia, espero que esta discusión ayude a otras personas que también desean instalar y configurar OpenSSL en Ubuntu.

Gracias.

+1
0
-1
Imagen de jm507
+1
0
-1

Dale pero pon solucionado en el titulo Saludos..!!!!

Primera Comunidad GNU/Linux-Software Libre en Panamá-Chiriquí, visita www.gnupanama.com y danos tu opnion..Saludos!!!

+1
0
-1

Promocionando el Software Libre. GNUPanama.

Imagen de Ricardo Arenaza Rojas
+1
0
-1

Hola. En esta pagina he encontrado el manual que buscaba, pero aun no he podido montar un sitio web seguro. Dices que hay que crear otro default para nuestro sitio seguro, pero no se donde. En otro blog lei que dentro del directorio /etc/apache2/sites-enabled/ssl debia colocarse dicho archivo.

de momento te digo que al intertar /etc/init.d/apache2/ start
me sale este mensaje:

open: Permission denied
* Starting web server apache2 [Sat Sep 20 20:08:12 2008] [warn] NameVirtualHost *:443 has no VirtualHosts
[Sat Sep 20 20:08:12 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
[Sat Sep 20 20:08:12 2008] [warn] NameVirtualHost *:443 has no VirtualHosts
[Sat Sep 20 20:08:12 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
open: Permission denied

Quiero que me confirmeslo del sitio donde poner el otro default o me aclares como va el tema.

De antemano gracias por la atencion.

+1
0
-1

RAR

Imagen de jm507
+1
0
-1

Bueno creo que esta de mas decírtelo pero recuerda que debes realizar todo esto como root y lo del archivo te recomiendo que lo crees en /etc/apache2/sites-available/ y despues lo habilites mediante a2ensite nombredelarchivo recargas la configuración (/etc/init.d/apache2 reload) y reinicias el servidor...

Primera Comunidad GNU/Linux-Software Libre en Panamá-Chiriquí, visita www.gnupanama.com y danos tu opnion..Saludos!!!

+1
0
-1

Promocionando el Software Libre. GNUPanama.

Imagen de oliveira
+1
0
-1

Hola a toda la comunidad, mi pregunta es la siguiente: tengo una aplicación con php necesito enviar
boletín a los usuarios suscrito al portal. Tengo instalado el SENDMAIL como configurarlo para el envio de boletin a yahoo, gmail y hotmail.

El script me responde este mensaje:
Boletín enviado a: andres.delgadillo1@gmail.com
Boletín enviado a: jrjesusdeoliveira@yahoo.es
Boletín enviado a: susdeoliveira@gmail.com

Pero al revisar el correo no esta.

Estoy trabajando con la función Mail.

+1
0
-1

Jesus De Oliveira

Imagen de jm507
+1
0
-1

Hola que tal....muchas veces el correo que envias desde tu red local muchas veces no se dirigen a Buzon de Entrada sino que van directo a la carpeta de Spam; esto puesto a que el servidor reconoce altuyo como no autentico...de todos modos sería bueno que revises la salida de los LOGS y la comentes...


less /var/log/mail.log

Saludos...!!!

Primera Comunidad GNU/Linux-Software Libre en Panamá-Chiriquí, visita www.gnupanama.com y danos tu opnion..Feliz Navidad y un Próspero Año Nuevo..Saludos!!!

+1
0
-1

Promocionando el Software Libre. GNUPanama.

Imagen de oliveira
+1
0
-1

Aquí están los Logs.

Dec 24 14:25:55 jesus sm-mta[17674]: mBNIX3Pq013622: to=, ctladdr= (33/33), delay=1+00:22:52, xdelay=00:00:00, mailer=esmtp, pri=1200367, relay=gmail.com, dsn=4.0.0, stat=Deferred: Connection timed out with gmail.com
Dec 24 14:27:28 jesus sm-mta[17842]: My unqualified host name (jesus) unknown; sleeping for retry
Dec 24 14:27:30 jesus sm-msp-queue[17847]: My unqualified host name (jesus) unknown; sleeping for retry
Dec 24 14:28:28 jesus sm-mta[17842]: unable to qualify my own domain name (jesus) -- using short name
Dec 24 14:28:28 jesus sm-mta[17849]: starting daemon (8.14.1): SMTP+queueing@00:10:00
Dec 24 14:28:30 jesus sm-msp-queue[17847]: unable to qualify my own domain name (jesus) -- using short name
Dec 24 14:29:11 jesus sendmail[17861]: My unqualified host name (jesus) unknown; sleeping for retry
Dec 24 14:30:11 jesus sendmail[17861]: unable to qualify my own domain name (jesus) -- using short name
Dec 27 10:55:57 jesus sm-mta[17431]: mBNIY30w013629: to=, ctladdr= (33/33), delay=3+20:51:54, xdelay=01:03:01, mailer=esmtp, pri=2280365, relay=a.mx.mail.yahoo.com. [67.195.168.31], dsn=4.0.0, stat=Deferred: Connection timed out with a.mx.mail.yahoo.com.
Dec 27 11:00:01 jesus sm-msp-queue[17844]: My unqualified host name (jesus) unknown; sleeping for retry

Otra pregunta, estoy generando un certificado openssl. Todo va bien esta que llego aquí:

root@jesus:/home/jesus# openssl req -new -subj "/DC=grupo"/OU=org/CN=oliveira" -key keypriv.pem -passing pass:xxxxxxx -out peticion.pem
>
>
¿Que estoy realizando malo?

Este es el certificado:
jesus@jesus:~$ sudo su
root@jesus:/home/jesus# openssl req -x509 -newkey rsa:2048 -keyout cackey.pem -days 3650 -out cacert.pem
Generating a 2048 bit RSA private key
............+++
..........................+++
writing new private key to 'cackey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Verify failure
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ve
State or Province Name (full name) [Some-State]:venezuela
Locality Name (eg, city) []:Ciudad Bolivar
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Jesus De Oliveira
Organizational Unit Name (eg, section) []:Oliveira
Common Name (eg, YOUR name) []:Jesus
Email Address []:jrjesusdeoliveira@yahoo.es
root@jesus:/home/jesus# openssl genrsa -des3 -out keypriv.pem -passout pass:xxxxxx 2011
Generating RSA private key, 2011 bit long modulus
....................................................................+++
....................................................................................+++
e is 65537 (0x10001)
root@jesus:/home/jesus# openssl req -new -subj "/DC=grupo"/OU=org/CN=oliveira" -key keypriv.pem -passing pass:xxxxxxx -out peticion.pem
>
>
Tengo instalado Ubuntu 7.10.

+1
0
-1

Jesus De Oliveira