Cómo habilitar múltiples sitios HTTPS para una IP en Debian Etch usando TLS Extensiones
Este tutorial es específico de Debian, pero podría trasladarse a otras distribuciones ya que el concepto es el mismo. Para usar las extensiones TLS, tenemos que parchear y recompilar apache2 y recompilar OpenSSL con la directiva enable-tlsext. Dado que las extensiones TLS son relativamente nuevas , algunos navegadores de Internet no funcionarán, por lo que el servidor apache2 entregará solo el sitio predeterminado como lo hace http 1.0 en un servidor http 1.1.
Este tutorial asume que ha seguido perfect_setup_debian_etch hasta completarlo.
1. Preparando pbuilder
Instale pbuilder.
apt-get update
apt-get install pbuilder fakeroot sudo devscripts apt-utils
Luego edite /etc/pbuilder/pbuilderrc en la línea 11 para reflejar un sitio más cercano a usted. Este es el sitio que usará apt para resolver las dependencias.
MIRRORSITE=http://http.us.debian.org/debian
En el mismo archivo, vaya a la línea 20 y configure DISTRIBUTION=etch
Finalmente crea tu imagen pbuilder.
pbuilder crear --distribución etch
2. Parcheando y recompilando apache2.
Primero debemos crear un directorio para almacenar las fuentes y descargarlas.
mkdir /usr/src/apache2
cd /usr/src/apache2
apt-get source apache2
Copie y guarde este parche en /usr/src/apache2/apache2-2.2.3/httpd-2.2.3-sni.patch
gato> /usr/src/apache2/apache2-2.2.3/httpd-2.2.3-sni.patch
httpd-2.2.3-sni.patch:soporte de indicación de nombre de servidor para Apache 2.2 (consulte RFC 4366, "Extensiones de seguridad de la capa de transporte (TLS)" )basado en un parche del proyecto EdelKey(http://www.edelweb.fr/EdelKey/files/apache-2.2.0+0.9.9+servername.patch)Necesita openssl-SNAP-20060330 / openssl-0.9.8 -stable-SNAP-20070813 o posterior para que funcione correctamente (ftp://ftp.openssl.org/snapshot/). La rama 0.9.8 debe configurarse explícitamente para admitir la extensión TLS en tiempo de compilación ("./config enable-tlsext"). Índice:httpd-2.2.x/modules/ssl/ssl_engine_init.c===================================================================--- httpd-2.2.x/modules/ssl/ssl_engine_init.c (revisión 423224)+++ httpd-2.2.x/modules/ssl/ssl_engine_init.c (copia de trabajo)@@ -156,6 +156,87 @@ volver OK; } +#ifndef OPENSSL_NO_TLSEXT+static int set_ssl_vhost(void *nombreservidor, conn_rec *c, servidor_rec *s) +{+ SSLSrvConfigRec *sc;+ SSL *ssl;+ BOOL encontrado =FALSO;+ apr_array_header_t *nombres;+ int i;+ + /* comprueba ServerName */+ if (!strcasecmp(servername, s->server_hostname))+ found =TRUE;++ /* si aún no coincide, comprueba las entradas de ServerAlias */+ if (!found) {+ names =s->nombres;+ if (nombres) {+ char **nombre =(char **) nombres->elts;+ for (i =0; i |
apache2 (2.2.3-4a+etch) estable; urgency=low |
deb-src http://ftp.debian.org/debian/ sid principal |
CONFARGS =--prefix=/usr --openssldir=/usr/lib/ssl no-idea no-mdc2 no-rc5 zlib enable-tlsext |
openssl (0.9.8g-1) inestable; urgency=low |
//////////////////////////////// /////////////////////// // Comprobar ob bereits ein SSL Cert auf der IP Existiert /////////////// ///////////////////////////////////////// $ssl_count =$go_api->db->queryOneRecord ("SELECT count(doc_id) as ssl_co if($ssl_count["ssl_count"]> 1) { // Es existente bereits ein SSL Web mit dieser IP $status ="NOTIFY"; $errorMessage .=$go_api->lng( "error_web_ssl_exist"); $go_api->db->query("ACTUALIZAR isp_isp_web conjunto web_ssl =0 donde doc_id =} |
//////////////////////////////// /////////////////////// // Comprobar ob bereits ein SSL Cert auf der IP Existiert /////////////// //////////////////////////////////////// // $ssl_count =$go_api->db->queryOneRecord("SELECT count(doc_id) as ssl_co // if($ssl_count["ssl_count"]> 1) { // // Es existente bereits ein SSL Web mit dieser IP // $status ="NOTIFY"; // $mensaje de error .=$go_api->lng("error_web_ssl_exist"); // $go_api->db->query("ACTUALIZAR isp_isp_web set web_ssl =0 where doc_id =// } |