{"id":1813,"date":"2016-10-17T13:08:22","date_gmt":"2016-10-17T19:08:22","guid":{"rendered":"https:\/\/www.lastdragon.net\/?p=1813"},"modified":"2016-10-17T13:08:22","modified_gmt":"2016-10-17T19:08:22","slug":"windows-server-2016-migrando-sitios-de-apache-y-nginx-a-iis-10","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=1813","title":{"rendered":"Windows Server 2016 &#8211; migrando sitios de Apache y Nginx a IIS 10"},"content":{"rendered":"<p>La semana pasada Micosoft liber\u00f3 Windows 2016 y como parte de mi pol\u00edtica usar las herramientas correctas para el trabajo correcto he decidido usarlo por un tiempo como el servidor de la cueva del ultimo drag\u00f3n la cual casi todo el tiempo corre sobre GNU\/Linux, casi todo el tiempo por que ha habido momentos en que ha corrido sobre OpenBSD, FreeBSD y hace much\u00edsimos a\u00f1os sobre Solaris. Pues bien hoy es el turno para Microsoft Windows Server 2016.<\/p>\n<p><strong>\u00bf Por que migrar la cueva a Windows Server 2016 ?<\/strong><\/p>\n<p>Como consultor de seguridad y SysAdmin debo siempre saber c\u00f3mo hacer las cosas en cualquier sistema operativo, algunos clientes no entienden el poder del software libre y se debe estar preparado para usar software privativo. Debo ser capaz de mantener la seguridad de la cueva del drag\u00f3n en un ambiente m\u00e1s delicado como Windows. <\/p>\n<p>Esto ser\u00e1 un reto interesante, La cueva del drag\u00f3n recibe ataques diarios lo menos son ataques de denegaci\u00f3n de servicio, muchos intentos de SQL inyecci\u00f3n y exploit. Hasta hoy ning\u00fan ha sido exitoso.<\/p>\n<p>Normalmente Windows Server se usa con aplicaciones .NET pero la cueva est\u00e1 escrita en PHP porque es un WordPress as\u00ed que tendre que proveer la mayor cantidad posible de seguridad al internet information server usando PHP.<\/p>\n<p>Algunas cosas han cambiado desde la \u00faltima vez que monte un sitio en PHP en un IIS, antes hab\u00eda que configurar a mano el servicio de PHP en modo CGI o FAST-CGI, ahora existe una herramienta llamada Plataforma WEB que instala cosas al internet information server y las configura en un razonable nivel de seguridad para la mayoria de usuarios aunque yo voy a revisarlo y mejorarlo de acuerdo a los criterios de la aplicaci\u00f3n. Tambi\u00e9n se encarga de las dependencias, es decir instalar PHP a mano en un Windows puede ser doloroso especialmente porque viene compilado en Visual Studio y se deben tener las librer\u00edas redistribuibles para que funcione correctamente, plataforma web se encarga de eso.<\/p>\n<p>Si est\u00e1s leyendo este art\u00edculo en el mes de <strong>Octubre del 2016 la cueva del drag\u00f3n estar\u00e1 siendo despachada por IIS<\/strong> con la esperanza de que soporte todos los intentos de exploit a los que normalmente es sometido el blog de la cueva del ultimo drag\u00f3n.<\/p>\n<p><strong>Caracter\u00edsticas de Windows 2016<\/strong><\/p>\n<p>Yo no le veo a simple vista una gran diferencia en funcionalidad y seguridad con  respecto a Windows 2012 R2 que es la versi\u00f3n anterior, actualmente ha cambiado su imagen parece un Windows 10 con las herramientas de servidor y las caracter\u00edsticas nuevas parece que solo ser\u00e1n \u00fatiles para ser aplicadas en LAN pero no hay mas de un par si se trata de aplicaciones WEB. Las mejoras en el WEB incluyen protocolo HTTP2 que desde hace m\u00e1s de un a\u00f1o es usado por APACHE y NGINX lo cual hace que los sitios reacciones m\u00e1s r\u00e1pido a las peticiones GET<\/p>\n<p><em>Lo nuevo.<\/em><\/p>\n<p>Active Directory Federation Services: permite configurar AD FS para autenticar a los usuarios almacenados en directorios sin AD, como X.500 compatible con directorios y bases de datos SQL de Lightweight Directory Access Protocol (LDAP).<\/p>\n<p>Windows Defender: Windows Server Antimalware est\u00e1 instalado y habilitado de forma predeterminada sin la interfaz gr\u00e1fica de usuario, que es una caracter\u00edstica de Windows instalable.<\/p>\n<p>Servicios de Escritorio remoto: soporte para OpenGL 4.4 y OpenCL 1.1, mejoras de rendimiento y estabilidad; Funci\u00f3n de Servicios MultiPoint Server.<\/p>\n<p>Servicios: centrales pol\u00edticas de almacenamiento de calidad de servicio. R\u00e9plicas de almacenamiento (almacenamiento agn\u00f3stico, a nivel de bloque, basada en el volumen, la replicaci\u00f3n sincr\u00f3nica y asincr\u00f3nica utilizando SMB3 entre servidores para la recuperaci\u00f3n en desastres). Almacenamiento R\u00e9plica replica bloques en lugar de archivos; archivos pueden estar en uso. No es multi-master, no uno a muchos y no transitiva. Se replican peri\u00f3dicamente instant\u00e1neas, y la direcci\u00f3n de replicaci\u00f3n se puede cambiar.<\/p>\n<p>Failover Clustering: cl\u00faster de actualizaci\u00f3n gradual del sistema operativo, r\u00e9plicas de almacenamiento.<\/p>\n<p>Web Application Proxy: autenticaci\u00f3n previa para la publicaci\u00f3n HTTP Aplicaci\u00f3n b\u00e1sica, la publicaci\u00f3n de dominio comod\u00edn de aplicaciones, HTTP a HTTPS redirecci\u00f3n, Propagaci\u00f3n de cliente de direcci\u00f3n IP para aplicaciones de back-end.<\/p>\n<p>IIS 10: Soporte para HTTP \/ 2<\/p>\n<p>Windows PowerShell 5.0<\/p>\n<p>Reinicio suave: es una caracter\u00edstica de Windows para acelerar el proceso de arranque saltarse la inicializaci\u00f3n del hardware, y reiniciar el software s\u00f3lo.<\/p>\n<p>El Servidor Telnet no est\u00e1 incluido<\/p>\n<p><strong>Migrando sitios PHP desde GNU\/Linux con Apache o Nginx a IIS<\/strong><\/p>\n<p>Instalar IIS como un nuevo rol del servidor Windows, las caracter\u00edsticas \u00fatiles para PHP y una migraci\u00f3n lo m\u00e1s limpia posible son:<\/p>\n<blockquote><p>Redirecci\u00f3n HTTP<br \/>\nAutenticaci\u00f3n b\u00e1sica<br \/>\nCGI<br \/>\nExtensiones ISAPI<br \/>\nFiltros ISAPI<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/caracteristicasiis.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/caracteristicasiis.jpg\" alt=\"Migrando PHP a IIS 10 en Windows 2016\" width=\"425\" height=\"350\" \/><\/a><\/p>\n<p><strong>Plataforma WEB<\/strong><\/p>\n<p>Una vez instalado IIS, abre IIS para instalar plataforma WEB en la opci\u00f3n donde dice obtener componentes de plataforma WEB <\/p>\n<p>Busca por PHP e instala PHP 7 ingles 32 o 64 bits seg\u00fan sea el caso. No intentes instalar PHP manager para IIS a\u00fan no ha sido actualizado para ser usado en IIS versi\u00f3n 10 que es la versi\u00f3n con la que viene Windows Server 2016, tampoco te ser\u00e1 necesario.<\/p>\n<p><a href=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/plataformaweb.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/plataformaweb.jpg\" alt=\"Migrando PHP a IIS 10 en Windows 2016\" width=\"425\" height=\"350\" \/><\/a><\/p>\n<p><strong>PHP en l\u00ednea<\/strong><\/p>\n<p>Desde este punto ya deber\u00eda ser capaz tu servidor Windows de ejecutar aplicaciones WEB escritas en PHP, solo debes crear tus sitios en IIS.<\/p>\n<p>Si quieres especificar los enlaces a los que debe responder de forma directa, da click en Modificador de enlaces, ah\u00ed podras  configurar el dominio y aliases de tu p\u00e1gina WEB as\u00ed como si usa o no certificados SSL, aunque para usar certificados SSL primero deber\u00e1s instalar los certificados para los dominios en ra\u00edz del servidor del IIS<\/p>\n<p><a href=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/iis.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/iis.jpg\" alt=\"Migrando PHP a IIS 10 en Windows 2016\" width=\"425\" height=\"350\" \/><\/a><\/p>\n<p><strong>Migrar tus certificados a Windows Server IIS<\/strong><\/p>\n<p>En GNU\/Linux usando Nginx o Apache estar\u00e1s acostumbrado a usar una llave privada y tus archivos de certificados en modo PEM o por separado como archivos.key,archivos.crt en IIS estos archivos no funcionan. Debes convertirlos o generar nuevos desde tu proveedor de certificados, reconvertir es la opci\u00f3n r\u00e1pida. Estando aun en GNU\/Linux usando el comando openssl y usa el siguiente ejemplo como gu\u00eda<\/p>\n<p><code>openssl pkcs12 -export -out lastdragon.pfx -inkey private.key -in lastdragon.crt -certfile sf_bundle-g2-g1.crt<\/code><\/p>\n<p>El resultado es que obtendr\u00e1s un archivo PFX en este caso lastdragon.pfx, es el archivo que debes importar en los certificados de servidor en el IIS<\/p>\n<p><a href=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/installcert.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/installcert.jpg\" alt=\"Migrando PHP a IIS 10 en Windows 2016\" width=\"425\" height=\"350\" \/><\/a><\/p>\n<p>Una vez importado el archivo PFX en enlaces como se dijo anteriormente puedes seleccionar si tu sitio usara SSL, ahora si puedes seleccionar HTTPS y te dar\u00e1 una lista de certificados disponibles para tu dominio. Selecciona el correcto y ahora ya tienes seguridad SSL<\/p>\n<p><a href=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/usarcert.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lastdragon.net\/misarchivos\/win2016server\/usarcert.jpg\" alt=\"Migrando PHP a IIS 10 en Windows 2016\" width=\"425\" height=\"350\" \/><\/a><\/p>\n<p>Desde aqu\u00ed ya puedes usar PHP en Windows para tus aplicaciones y compartir apps con .NET.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La semana pasada Micosoft liber\u00f3 Windows 2016 y como parte de mi pol\u00edtica usar las herramientas correctas para el trabajo correcto he decidido usarlo por un tiempo como el servidor de la cueva del ultimo drag\u00f3n la cual casi todo el tiempo corre sobre GNU\/Linux, casi todo el tiempo por que ha habido momentos en&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1814,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1813","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-consultoria-y-manuales"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/1813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1813"}],"version-history":[{"count":1,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/1813\/revisions"}],"predecessor-version":[{"id":1815,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/1813\/revisions\/1815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/media\/1814"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}