En esta guía se describe cómo configurar HTTPS / SSL para la Central Telefónica 3CX versión 11 instalada con un Servidor Web Abyss. Tiene que estar ejecutando la Central Telefónica 3CX versión 11, build 27.011 o posterior.

Nota: si ha estado ejecutando una versión previa de la Central Telefónica 3CX versión 11, necesitará realizar una copia de seguridad de su Central Telefónica 3CX, desinstalar, descargar la última versión de Central Telefónica 3CX y realizar una reinstalación completa. Puede restaurar la configuración después de la instalación. Por desgracia, la actualización al build 27.011 a través de una actualización de Service Pack no funciona, ya que el soporte de HTTPS requiere una actualización del servidor web Abyss que no puede realizarse a través de una actualización de SP.

Se requiere un certificado apropiado. La Central Telefónica 3CX requiere que los usuarios finales puedan comprobar la identidad del servidor con el certificado generado. En este caso, deberá enviar una solicitud de certificado a una entidad emisora de certificados conocida (CA), tales como Thawte, VeriSign o Geotrust, o puede obtener un certificado de una entidad emisora en línea – en este ejemplo utilizaremos https://www.cacert.org.

Este documento consta de 6 partes:

  • Parte 1: Creación de una solicitud de certificado en el servidor web Abyss.
  • Parte 2: Envío de la solicitud de certificado a la entidad emisora de certificados y obtención de un certificado de servidor.
  • Parte 3: Completar la solicitud de certificado de la parte 1 mediante la introducción de la respuesta de la entidad emisora de certificados.
  • Parte 4: Importar el certificado raíz de la entidad emisora de certificados en el servidor 3CX y en todas las computadoras que tendrán acceso a 3CX MyPhone.
  • Parte 5: Modificar el archivo de configuración web de 3CX MyPhone para que funcione HTTPS.
  • Parte 6: Crear el enlace HTTPS en el servidor web Abyss.

Parte 1: Creación de una solicitud de certificado en el servidor web Abyss

Para crear una solicitud de certificado en el servidor web Abyss, necesitamos activar la consola de administración del servidor web Abyss. Proceda de la siguiente forma:

Desde la máquina donde se encuentra instalada la Central Telefónica 3CX, navegue al directorio donde se encuentra instalada la Central Telefónica 3CX, que por defecto es <C:Program Files3CX PhoneSystemBinWebserver>

Ubique el archivo abyss o abyss.conf, haga clic derecho sobre él y ábralo con un editor de texto.

Vaya al final del archivo y bajo el elemento <version/> debería ver un elemento llamado <console/>. Dentro de <console/> debería haber otro elemento llamado <port/>. Cambie el valor de 0 a 8080 (o cualquier otro puerto de su elección).

Guarde el archivo, haga clic en Inicio > Ejecutar > ingrese Services.msc y reinicie el servicio ‘Abyss Web Server’.

Abra un navegador e ingrese http://127.0.0.1:8080 (Nota: por seguridad, la consola de Administración Abyss por defecto solo es accesible desde el servidor de la Central Telefónica 3CX).

Ingrese las siguientes credenciales:

Usuario: admin

Contraseña: admin

Se le presentará la consola de administración del servidor web Abyss.

Haga clic en “SSL/TLS Certificates”.

En la sección “Private Keys” haga clic en “Add” para generar una clave privada.

Ingrese un nombre para esta clave privada – por ejemplo, voip4_key. En “Action” seleccione “Generate”, y seleccione “RSA 2048 bits” como el “Type”. Presione OK cuando haya terminado.

Al presionar OK, notará que se ha generado una clave privada con el nombre voip4_key.

Haga clic en el botón “Generate” para iniciar el proceso de generación de una solicitud de firma de certificado.

Private Key: seleccione la clave privada que se ha creado, en este ejemplo vamos a seleccionar voip4_key

Host Name: introduzca el nombre de dominio completo – en nuestro ejemplo voip4.alarm-system.com

Complete el nombre de la organización, el nombre de la unidad, la localidad, el estado o provincia, el código de país y el correo electrónico de contacto. Presione OK cuando haya terminado.

Se generará una solicitud de certificado (CSR). Copie el contenido de la CSR y guardelo en un archivo de texto. Nombre a este archivo de texto “voip4_certificaterequest.txt”.

Presione OK para completar el procedimiento.

Parte 2: Envío de la solicitud de certificado a la entidad emisora de certificados y obtención de un certificado de servidor

Ahora que tenemos la solicitud de certificado, tenemos que enviarlo a una entidad emisora de certificados confiable con el fin de obtener un certificado de servidor. Si utiliza una entidad emisora de certificados confiable, siga su documentación en línea de aquí en adelante. En este ejemplo, vamos a utilizar CAcert para generar el certificado del servidor para nuestro servidor de la Central Telefónica 3CX.

Abra un navegador y navegue hacia https://www.cacert.org Cree una cuenta y una vez activada haga clic en “Password login” para ingresar.

Busque el archivo de texto que contiene la solicitud de certificado generado en el paso anterior (“voip4certificaterequest.txt” en nuestro ejemplo) y ábralo con un editor de texto. Copie todos los contenidos. Vuelva al sitio CAcert, haga clic en Server Certificates > New, y pegue el texto. Haga clic en Submit. Notará que la solicitud de certificado contendrá el nombre común. Pulse en Submit para enviar la solicitud.

En la siguiente pantalla, CAcert va a generar el certificado del servidor. Copie el certificado de servidor en su totalidad, péguelo en un nuevo archivo de texto y nombre al archivo “servercertificate.cer”.

Parte 3: Completar la solicitud de certificado en el servidor web Abyss

Ahora que ya tenemos el certificado del servidor que contiene la respuesta autorizada de la autoridad certificadora, podamos volver al servidor web Abyss para completar la solicitud de certificado.

Acceda a la consola de administración Abyss – http://127.0.0.1:8080. Haga clic en “SSL/TLS certificates”.

En la sección “Certificates”, presione el botón “Add”.

Ingrese un nombre para este certificado – por ejemplo: voip4.alarm-system.com

Seleccione la clave privada usada para generar la solicitud de certificado – en este ejemplo, voip4_key.

Type: Seleccione “Signed by a Certification Authority CA”.

En la sección “Main Certificate” copie el contenido del certificado del servidor de la sección anterior – voip4servercertificate.txt en nuestro ejemplo. Presione OK cuando haya terminado.

El certificado ha sido creado para su dominio. Este certificado ahora puede utilizarse en el sitio web.

Parte 4: Importar el certificado raíz de la entidad emisora de certificados en el servidor 3CX y en todas las computadoras que tendrán acceso a 3CX MyPhone

Dado que el certificado raíz de CAcert no viene incluido con el sistema operativo Windows, también es necesario descargar e instalar el Certificado Raíz y el Certificado Intermedio. Si está utilizando Thawte o Verisign puede saltarse este paso.

Desde https://www.cacert.org/index.php?id=3 descargue el certificado raíz (formato PEM).

Desde https://www.cacert.org/certs/root.crt descargue el certificado intermedio (formato PEM).  También puede descargar el archivo desde aquí: https://www.cacert.org/certs/class3.crt. Guarde estos archivos en una carpeta de su computadora. En nuestro caso, la carpeta se llama voip3.alarm-system.com.

A continuación, haga clic en Inicio > Ejecutar, ingrese “MMC” y presione Enter. Desde “File” seleccione “Add or remove snap-in”.

Seleccione “Certificates” y presione “Add”.

En la siguiente pantalla, seleccione “Computer account”.

Seleccione “Local computer” para acceder al almacén de certificados del equipo local. Presione “Finish”.

El complemento seleccionado es el que aparece en el lado derecho. Presione OK para que MMC abra el complemento “Certificates (Local Computer)”.

Arriba se muestran todos los certificados que están instalados en la computadora. Expanda el nodo “Certificates” > “Trusted Root Certification Authorities” > “Certificates”.

Presione “More” en el panel de acciones (a la derecha) y seleccione All tasks > import.

Se iniciará el asistente de importación de certificados. Haga clic en Next para continuar.

Haga clic en Browse y especifique el certificado raíz que se ha descargado en el paso anterior. En nuestro ejemplo, el archivo se llama root.cer.

Seleccione la ubicación en la que desea que se instale este certificado. En nuestro caso queremos instalarlo en el almacén “Trusted Root Certification Authorities”. Haga clic en Next para instalar el certificado raíz en esta ubicación.

El certificado raíz de CAcert ha sido importado exitosamente y lo verá en el almacén “Trusted certificates” en la consola MMC.

A continuación necesitamos instalar el certificado intermedio.

Expanda el nodo “Intermediate Certification Authorities” > “Certificates”. Haga clic derecho > All tasks > Import.

Especifique el certificado intermedio descargado desde CAcert, en este ejemplo el archivo de nombre class3.cer y presione Next.

Seleccione el almacén “Intermediate Certification Authorities” y presione Next.

Se le avisará que el certificado intermedio ha sido importado y deberá ver el certificado en la lista de certificados.

Parte 5: Configuración de 3CX MyPhone para funcionar en el modo HTTPS

3CX MyPhone es una aplicación Silverlight y requiere un cambio a sus archivos de configuración, el cual debe ser realizado en forma manual.

Al utilizar Abyss, 3CX MyPhone no puede trabajar con HTTP y HTTPS en forma simultánea. Si decide utilizar 3CX MyPhone solo en HTTPS, necesitará comentar la sección HTTP en el archivo de configuración y descomentar la sección HTTPS.

En la computadora del servidor de la Central Telefónica 3CX, navegue al directorio <C:ProgramData3CXDataHttpInterfaceMyPhone> (donde C:ProgramData es la ruta a la carpeta de datos compartidos de las aplicaciones). Busque el archivo “web” o “web.config”, haga clic derecho y ábralo con un editor de texto.

Primero, busque la línea que necesita ser comentada. Busque “comment the below line for HTTPS to work”. La siguiente línea (también mostrada abajo) es la línea que necesita ser comentada.

<endpoint address=”” binding=”pollingDuplexBinding” bindingConfiguration=”PubSubChunkedBinary” contract=”Tcx.Assistant.IAssistPubSub”/>

Luego de comentar esta línea, debería verse de la siguiente forma:

<!–endpoint address=”” binding=”pollingDuplexBinding” bindingConfiguration=”PubSubChunkedBinary” contract=”Tcx.Assistant.IAssistPubSub”/ –>

A continuación, necesitará descomentar la línea que habilita HTTPS. Esta se encuentra justo debajo de la línea comentada recién.

Antes de la modificación, la línea se verá así:

<!– endpoint address=”” binding=”pollingDuplexBinding” bindingConfiguration=”PubSubChunkedBinaryHTTPS” contract=”Tcx.Assistant.IAssistPubSub” –>

Luego de las modificaciones debería verse así:

<endpoint address=”” binding=”pollingDuplexBinding” bindingConfiguration=”PubSubChunkedBinaryHTTPS” contract=”Tcx.Assistant.IAssistPubSub” />

Guarde y cierre el archivo cuando haya terminado. 3CX MyPhone ahora está configurado para utilizar solo HTTPS.

Parte 6: Creando el enlace HTTPS en el servidor web Abyss

Acceda a la consola de administración de Abyss – http://127.0.0.1:8080.

Haga clic en “Configure”.

Presione “General”.

En la sección “Protocol” seleccione HTTP+HTTPS.

En la sección “HTTPS Port” seleccione si desea utilizar el puerto HTTPS predeterminado (443) o si prefiere utilizar otro puerto.

En el menú desplegable “Certificate”, seleccione el certificado del servidor – en este ejemplo es voip4.alarm-system.com

Presione OK para retornar a la pantalla “General”. La consola de administración de Abyss le solicitará que reinicie el servidor web Abyss. Presione “Restart”.

Felicitaciones – La Central Telefónica 3CX corriendo con el servidor web Abyss ahora se encuentra configurada para HTTPS/TLS.

Ahora puede acceder a los siguientes sitios de 3CX utilizando HTTPS:

  • La consola de administración: https://voip4.alarm-system.com/management o http://voip4.alarm-system.com:5000/management
  • Reportes web: https://voip4.alarm-system.com/reports o http://voip4.alarm-system.com:5000/reports
  • 3CX MyPhone: https://voip4.alarm-system.com/MyPhone. Cuando HTTPS se encuentra habilitado, no puede accederse mediante HTTP.

Notas:

  • Wallboard: 3CX Wallboard no soporta HTTPS.
  • 3CX MyPhone requiere que el certificado raíz sea instalado en cada equipo cliente que necesite acceder a 3CX MyPhone. Si está utilizando Thawte, GeoTrust o VeriSign, el certificado raíz se incluye con Windows. Si utiliza cualquier otra entidad emisora de certificados cuyo certificado raíz no se encuentra preinstalado con Windows, tendrá que repetir la parte 4 en todas las computadoras de los usuarios que necesitan acceder a 3CX MyPhone. De lo contrario 3CX MyPhone solo funcionará con Internet Explorer. Alternativamente, puede utilizar Group Policies para instalar los certificados raíz o intermedio en los equipos del dominio.
  • Cuando se utiliza el servidor web Abyss, 3CX MyPhone no puede usar HTTP y HTTPS en forma simultánea. Así que si necesita HTTPS, HTTP normal tendrá que estar desactivado.
  • Por motivos de seguridad es una buena práctica desactivar la consola de administración del servidor web Abyss. Puede hacer esto cambiando <console><port> de 8080 a 0. Guarde el archivo y reinicie el servidor web Abyss.