{"id":484,"date":"2025-07-31T06:31:44","date_gmt":"2025-07-31T09:31:44","guid":{"rendered":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/?p=484"},"modified":"2025-07-31T06:58:05","modified_gmt":"2025-07-31T09:58:05","slug":"elementor-484","status":"publish","type":"post","link":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/?p=484","title":{"rendered":"Configurar HTTPS en Tomcat con certificado autofirmado"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"484\" class=\"elementor elementor-484\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ac51be e-flex e-con-boxed e-con e-parent\" data-id=\"1ac51be\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68de78b elementor-widget elementor-widget-html\" data-id=\"68de78b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2>\ud83d\udd10 Configurar HTTPS en Tomcat con certificado autofirmado (entorno de desarrollo)<\/h2>\r\n\r\n<p>Para entornos de desarrollo o servidores internos, pod\u00e9s usar un certificado autofirmado para habilitar HTTPS en Apache Tomcat 10.1. Esto permite probar aplicaciones que requieren HTTPS (como GeneXus) sin necesidad de un certificado emitido por una autoridad externa.<\/p>\r\n\r\n<h3>1\ufe0f\u20e3 Crear certificado autofirmado (.p12)<\/h3>\r\n\r\n<p>Ejecut\u00e1 el siguiente script <code>.bat<\/code> con permisos de administrador. Guardalo como <code>crear_certificado_tomcat.bat<\/code>:<\/p>\r\n\r\n<pre><code>@echo off\r\nmkdir \"C:\\cert\"\r\n\"C:\\Program Files\\Java\\jdk-21\\bin\\keytool.exe\" -genkeypair ^\r\n -alias tomcat ^\r\n -keyalg RSA ^\r\n -keysize 2048 ^\r\n -validity 3650 ^\r\n -keystore \"C:\\cert\\tomcat-keystore.p12\" ^\r\n -storetype PKCS12 ^\r\n -storepass changeit ^\r\n -dname \"CN=localhost, OU=Desarrollo, O=MiEmpresa, L=Rio Cuarto, ST=Cordoba, C=AR\"\r\n<\/code><\/pre>\r\n\r\n<p>\ud83d\udd39 Tambi\u00e9n pod\u00e9s ejecutar el mismo comando en una sola l\u00ednea (por ejemplo desde PowerShell):<\/p>\r\n\r\n<pre><code>\"C:\\Program Files\\Java\\jdk-21\\bin\\keytool.exe\" -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -validity 3650 -keystore \"C:\\cert\\tomcat-keystore.p12\" -storetype PKCS12 -storepass changeit -dname \"CN=localhost, OU=Desarrollo, O=MiEmpresa, L=Rio Cuarto, ST=Cordoba, C=AR\"\r\n<\/code><\/pre>\r\n\r\n<p>Esto generar\u00e1 el archivo <code>tomcat-keystore.p12<\/code> en <code>C:\\cert<\/code>, v\u00e1lido por 10 a\u00f1os.<\/p>\r\n\r\n<h3>2\ufe0f\u20e3 Configurar Tomcat<\/h3>\r\n\r\n<p>Edit\u00e1 el archivo <code>server.xml<\/code> ubicado en <code>C:\\Program Files\\Apache Software Foundation\\Tomcat 10.1\\conf\\<\/code> y agreg\u00e1 el siguiente conector HTTPS:<\/p>\r\n\r\n<pre><code>&lt;Connector port=\"8443\" protocol=\"org.apache.coyote.http11.Http11NioProtocol\"\r\n           maxThreads=\"150\"\r\n           SSLEnabled=\"true\"\r\n           scheme=\"https\"\r\n           secure=\"true\"\r\n           clientAuth=\"false\"\r\n           sslProtocol=\"TLS\"&gt;\r\n    &lt;SSLHostConfig&gt;\r\n        &lt;Certificate certificateKeystoreFile=\"C:\\cert\\tomcat-keystore.p12\"\r\n                     type=\"PKCS12\"\r\n                     certificateKeystorePassword=\"changeit\" \/&gt;\r\n    &lt;\/SSLHostConfig&gt;\r\n&lt;\/Connector&gt;\r\n<\/code><\/pre>\r\n\r\n<p>Luego reinici\u00e1 el servicio Tomcat. Pod\u00e9s acceder a tu app en <a href=\"https:\/\/localhost:8443\" target=\"_blank\">https:\/\/localhost:8443<\/a>. El navegador mostrar\u00e1 una advertencia por ser autofirmado, pero es normal para uso interno.<\/p>\r\n\r\n<h3>\u2699\ufe0f \u00bfQu\u00e9 hacer si aparece \"keytool no se reconoce como un comando\"?<\/h3>\r\n\r\n<p>Este error significa que Windows no encuentra el ejecutable <code>keytool.exe<\/code>. Para solucionarlo, agregalo al <strong>PATH del sistema<\/strong>:<\/p>\r\n\r\n<ol>\r\n  <li>Presion\u00e1 <strong>Win + R<\/strong>, escrib\u00ed <code>sysdm.cpl<\/code> y presion\u00e1 Enter.<\/li>\r\n  <li>En la pesta\u00f1a <strong>Opciones avanzadas<\/strong>, hac\u00e9 clic en <strong>Variables de entorno<\/strong>.<\/li>\r\n  <li>En \"Variables del sistema\", seleccion\u00e1 <code>Path<\/code> y hac\u00e9 clic en <strong>Editar<\/strong>.<\/li>\r\n  <li>Hac\u00e9 clic en <strong>Nuevo<\/strong> y agreg\u00e1 la ruta a tu JDK, por ejemplo:\r\n    <pre><code>C:\\Program Files\\Java\\jdk-21\\bin<\/code><\/pre>\r\n  <\/li>\r\n  <li>Acept\u00e1 todo y cerr\u00e1 las ventanas.<\/li>\r\n  <li>Cerr\u00e1 y volv\u00e9 a abrir cualquier consola que tengas abierta.<\/li>\r\n  <li>Prob\u00e1 con:\r\n    <pre><code>keytool -help<\/code><\/pre>\r\n    para verificar que ya funciona.\r\n  <\/li>\r\n<\/ol>\r\n\r\n<h3>\u274c \u00bfQu\u00e9 hacer si aparece \"Incorrect AVA format\"?<\/h3>\r\n\r\n<p>Este error indica que hay un error de formato en la propiedad <code>-dname<\/code>. Para evitarlo:<\/p>\r\n\r\n<ul>\r\n  <li>No uses tildes ni caracteres especiales (por ejemplo: \u00f3, \u00e1, \u00f1).<\/li>\r\n  <li>No dejes espacios antes o despu\u00e9s de las comas.<\/li>\r\n  <li>Us\u00e1 este formato exacto como ejemplo v\u00e1lido:\r\n    <pre><code>-dname \"CN=localhost, OU=Desarrollo, O=MiEmpresa, L=Rio Cuarto, ST=Cordoba, C=AR\"<\/code><\/pre>\r\n  <\/li>\r\n<\/ul>\r\n\r\n<h3>\ud83d\udd01 Notas finales<\/h3>\r\n<ul>\r\n  <li>Este m\u00e9todo es ideal para pruebas locales o entornos cerrados.<\/li>\r\n  <li>No usar certificados autofirmados en producci\u00f3n.<\/li>\r\n  <li>Record\u00e1 que GeneXus necesita tener configurado <strong>Protocol specification = Secure (HTTPS:)<\/strong> para generar las URLs correctamente.<\/li>\r\n<\/ul>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\ud83d\udd10 Configurar HTTPS en Tomcat con certificado autofirmado (entorno de desarrollo) Para entornos de desarrollo o servidores internos, pod\u00e9s usar un certificado autofirmado para habilitar HTTPS en Apache Tomcat 10.1. Esto permite probar aplicaciones que requieren HTTPS (como GeneXus) sin necesidad de un certificado emitido por una autoridad externa. 1\ufe0f\u20e3 Crear certificado autofirmado (.p12) Ejecut\u00e1 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,24],"tags":[25],"class_list":["post-484","post","type-post","status-publish","format-standard","hentry","category-gx","category-tomcat","tag-tomcat"],"_links":{"self":[{"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=\/wp\/v2\/posts\/484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=484"}],"version-history":[{"count":11,"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=\/wp\/v2\/posts\/484\/revisions"}],"predecessor-version":[{"id":496,"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=\/wp\/v2\/posts\/484\/revisions\/496"}],"wp:attachment":[{"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiki.gobiernoriocuarto.gob.ar\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}