<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Tls on inetshell</title><link>https://inet.sh/es/tags/tls/</link><description>Recent content in Tls on inetshell</description><generator>Hugo</generator><language>es</language><lastBuildDate>Sat, 26 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://inet.sh/es/tags/tls/index.xml" rel="self" type="application/rss+xml"/><item><title>Certificado gestionado de Google que nunca se emite: CAA (pki.goog, letsencrypt.org), FAILED_NOT_VISIBLE y el orden correcto</title><link>https://inet.sh/es/posts/gcp/certificado-gestionado-google-caa/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><guid>https://inet.sh/es/posts/gcp/certificado-gestionado-google-caa/</guid><description>El certificado gestionado de Google para un balanceador HTTPS lleva horas en PROVISIONING o cae a FAILED_NOT_VISIBLE o FAILED_CAA_FORBIDDEN. Las tres causas: el DNS todavía no apunta a la IP del balanceador, el certificado no está adjunto a un target proxy, o un registro CAA de la zona no autoriza a pki.goog ni a letsencrypt.org. Cómo comprobar el estado con gcloud, el CAA correcto, y Certificate Manager con autorización DNS para emitir antes de cambiar el DNS.</description><content:encoded><![CDATA[<h2 id="en-corto">En corto</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">example.com.   CAA 0 issue &#34;pki.goog&#34;
</span></span><span class="line"><span class="cl">example.com.   CAA 0 issue &#34;letsencrypt.org&#34;
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gcloud compute ssl-certificates describe web-cert --global --format<span class="o">=</span><span class="s1">&#39;yaml(managed)&#39;</span>
</span></span><span class="line"><span class="cl"><span class="c1"># managed:</span>
</span></span><span class="line"><span class="cl"><span class="c1">#   domainStatus:</span>
</span></span><span class="line"><span class="cl"><span class="c1">#     www.example.com: PROVISIONING | ACTIVE | FAILED_NOT_VISIBLE | FAILED_CAA_FORBIDDEN | FAILED_CAA_CHECKING | FAILED_RATE_LIMITED</span>
</span></span><span class="line"><span class="cl"><span class="c1">#   status: PROVISIONING | ACTIVE</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Para que pase a <code>ACTIVE</code> tienen que cumplirse tres cosas a la vez: el <strong>A/AAAA</strong> del dominio apunta a la IP del balanceador (y a nada más), el certificado está <strong>adjunto a un target proxy</strong> con su forwarding rule, y ningún <strong>CAA</strong> de la zona prohíbe a las CAs de Google. Después, hasta <strong>60 minutos</strong>.</p>
<h2 id="por-qué">Por qué</h2>
<p>Google emite los certificados gestionados con <strong>Google Trust Services</strong> (<code>pki.goog</code>) o con <strong>Let&rsquo;s Encrypt</strong>, y elige una u otra en cada emisión o renovación. Para validar el dominio hace una comprobación HTTP contra la IP a la que resuelve el nombre, así que hasta que el DNS apunte al balanceador no hay nada que validar. Y como cualquier CA, respeta los registros <strong>CAA</strong>: si tu zona dice que solo <code>digicert.com</code> puede emitir (política corporativa típica), Google no puede.</p>
<p>Los estados lo cuentan:</p>
<table>
  <thead>
      <tr>
          <th><code>domainStatus</code></th>
          <th>Causa</th>
          <th>Qué hacer</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>PROVISIONING</code></td>
          <td>En curso</td>
          <td>Esperar; si pasa de 60 minutos, revisar lo de abajo</td>
      </tr>
      <tr>
          <td><code>FAILED_NOT_VISIBLE</code></td>
          <td>El nombre no resuelve a la IP del balanceador, o el certificado no está adjunto a un target proxy</td>
          <td>Corregir A/AAAA, adjuntar el certificado, esperar la propagación</td>
      </tr>
      <tr>
          <td><code>FAILED_CAA_CHECKING</code></td>
          <td>Google no pudo leer los CAA (DNS que no responde, DNSSEC roto)</td>
          <td>Arreglar la zona</td>
      </tr>
      <tr>
          <td><code>FAILED_CAA_FORBIDDEN</code></td>
          <td>Hay CAA y no incluye a <code>pki.goog</code> ni a <code>letsencrypt.org</code></td>
          <td>Añadir los dos registros</td>
      </tr>
      <tr>
          <td><code>FAILED_RATE_LIMITED</code></td>
          <td>Demasiados intentos de emisión</td>
          <td>Esperar; no recrear el certificado en bucle</td>
      </tr>
  </tbody>
</table>
<h2 id="el-caa-correcto">El CAA correcto</h2>
<p>Sin ningún registro CAA, cualquier CA puede emitir y Google funciona. Si tienes CAA (o tu organización lo exige), añade <strong>las dos</strong> CAs:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">example.com.   CAA 0 issue &#34;pki.goog&#34;
</span></span><span class="line"><span class="cl">example.com.   CAA 0 issue &#34;letsencrypt.org&#34;
</span></span></code></pre></td></tr></table>
</div>
</div><p>Poner solo una obliga a Google a usar siempre esa; la documentación lo desaconseja porque una renovación puede salir por la otra. Los CAA se heredan hacia abajo: un CAA en <code>example.com</code> cubre <code>www.example.com</code> si el subdominio no tiene el suyo.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">dig +short CAA example.com
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="certificate-manager-emitir-antes-de-cambiar-el-dns">Certificate Manager: emitir antes de cambiar el DNS</h2>
<p>Con los certificados clásicos (<code>compute ssl-certificates</code>) el dominio tiene que apuntar ya al balanceador, lo que en una migración significa unos minutos de HTTPS roto. <strong>Certificate Manager</strong> resuelve eso con <strong>autorización DNS</strong>: publicas un CNAME de validación y Google emite el certificado mientras el tráfico sigue en el sitio viejo.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gcloud certificate-manager dns-authorizations create www-auth --domain<span class="o">=</span>www.example.com
</span></span><span class="line"><span class="cl">gcloud certificate-manager dns-authorizations describe www-auth --format<span class="o">=</span><span class="s1">&#39;yaml(dnsResourceRecord)&#39;</span>
</span></span><span class="line"><span class="cl"><span class="c1"># dnsResourceRecord: name: _acme-challenge.www.example.com. type: CNAME data: xxxx.authorize.certificatemanager.goog.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># publica ese CNAME en tu zona y luego:</span>
</span></span><span class="line"><span class="cl">gcloud certificate-manager certificates create www-cert <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  --domains<span class="o">=</span>www.example.com --dns-authorizations<span class="o">=</span>www-auth
</span></span><span class="line"><span class="cl">gcloud certificate-manager maps create web-map
</span></span><span class="line"><span class="cl">gcloud certificate-manager maps entries create www --map<span class="o">=</span>web-map --certificate<span class="o">=</span>www-cert --hostname<span class="o">=</span>www.example.com
</span></span><span class="line"><span class="cl">gcloud compute target-https-proxies update web-proxy --certificate-map<span class="o">=</span>web-map
</span></span></code></pre></td></tr></table>
</div>
</div><p>Cuando el certificado esté <code>ACTIVE</code>, cambias el A/AAAA y el corte es cero. Los CAA aplican igual.</p>
<h2 id="trampas">Trampas</h2>
<ul>
<li><strong>Cloudflare u otro proxy delante</strong> del balanceador: el A apunta al proxy, no a Google, y la validación falla con <code>FAILED_NOT_VISIBLE</code>. Nube gris durante la emisión, o Certificate Manager con autorización DNS.</li>
<li><strong>Un certificado gestionado no adjunto a nada no se emite.</strong> Crearlo y esperar no hace nada; adjúntalo al target proxy primero.</li>
<li><strong>Cambiar la lista de dominios</strong> crea un certificado nuevo: adjunta el nuevo, espera <code>ACTIVE</code>, y solo entonces quita el viejo del proxy, o tendrás un hueco.</li>
<li><strong>Wildcards</strong> solo con Certificate Manager y autorización DNS; los certificados gestionados clásicos no los admiten.</li>
<li><strong>DNSSEC mal firmado</strong> rompe la lectura de CAA: <code>FAILED_CAA_CHECKING</code> aunque no tengas ningún CAA.</li>
</ul>
<p>Referencia: <a href="https://docs.cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs">Google-managed SSL certificates</a> y <a href="https://docs.cloud.google.com/certificate-manager/docs/overview">Certificate Manager</a> en la documentación de Google Cloud.</p>
]]></content:encoded></item><item><title>iLO 2/3 y ERR_SSL_VERSION_OR_CIPHER_MISMATCH: abrir la consola desde un navegador moderno</title><link>https://inet.sh/es/posts/ilo/err-ssl-version-or-cipher-mismatch/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://inet.sh/es/posts/ilo/err-ssl-version-or-cipher-mismatch/</guid><description>Chrome y Edge muestran ERR_SSL_VERSION_OR_CIPHER_MISMATCH con HP iLO 2 e iLO 3 porque solo hablan TLS 1.0/1.1 y HPE no va a añadir TLS 1.2. Cómo entrar igual: Firefox con security.tls.version.enable-deprecated en un perfil aparte, Edge en modo IE, y forzar AES por SSH.</description><content:encoded><![CDATA[<h2 id="en-corto">En corto</h2>
<p>Chrome y Edge ya no negocian TLS 1.0/1.1 y no hay flag que lo devuelva. iLO 2 (TLS 1.0) e iLO 3 (TLS 1.1 como máximo) nunca van a subir a TLS 1.2. Salidas que funcionan hoy:</p>
<ol>
<li><strong>Firefox</strong>, en un perfil aparte: <code>about:config</code> → <code>security.tls.version.enable-deprecated</code> = <code>true</code>.</li>
<li><strong>Edge en modo Internet Explorer</strong> (Windows).</li>
<li><strong>SSH al iLO</strong> para lo que no necesite la UI, y de paso forzar AES:</li>
</ol>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">ssh -o <span class="nv">HostKeyAlgorithms</span><span class="o">=</span>+ssh-rsa -o <span class="nv">KexAlgorithms</span><span class="o">=</span>+diffie-hellman-group14-sha1 -c aes256-cbc Administrator@&lt;ilo-ip&gt;
</span></span><span class="line"><span class="cl"><span class="nb">set</span> /map1/config1 <span class="nv">oemhp_enforce_aes</span><span class="o">=</span>yes
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="por-qué-pasa">Por qué pasa</h2>
<table>
  <thead>
      <tr>
          <th>iLO</th>
          <th>Último firmware</th>
          <th>TLS máximo</th>
          <th>Cifrados que ofrece</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>iLO 2</td>
          <td>2.33 (2018-03)</td>
          <td>1.0</td>
          <td>RC4-SHA, 3DES-SHA; AES-CBC si fuerzas AES</td>
      </tr>
      <tr>
          <td>iLO 3</td>
          <td>1.94.2 (2020-12)</td>
          <td>1.1</td>
          <td>AES-128-CBC-SHA (DHE), 3DES</td>
      </tr>
  </tbody>
</table>
<p>HPE lo dejó por escrito: <a href="https://support.hpe.com/hpesc/public/docDisplay?docId=a00100228en_us&amp;docLocale=en_US">TLS 1.2 no está soportado en iLO 3 y no se va a añadir</a> porque los G7 están fuera de soporte. iLO 2 (G6 y anteriores) está peor: TLS 1.0 y nada más.</p>
<p>Del lado del navegador:</p>
<ul>
<li><strong>Chrome y Edge</strong> quitaron TLS 1.0/1.1 en 2020 (Chrome 84) y la política <code>SSLVersionMin</code> que permitía reactivarlos en 2022 (Chrome 98). El resultado con un iLO viejo es <code>ERR_SSL_VERSION_OR_CIPHER_MISMATCH</code>.</li>
<li><strong>Firefox</strong> los desactivó en la 78 (2020), pero dejó la preferencia. Desde la 93 también apaga 3DES, <a href="https://blog.mozilla.org/security/2021/10/05/securing-connections-disabling-3des-in-firefox-93/">salvo que TLS deprecado esté habilitado</a>. RC4 desapareció en la 44 (2016) y no vuelve. El error típico es <code>SSL_ERROR_UNSUPPORTED_VERSION</code> o <code>SSL_ERROR_NO_CYPHER_OVERLAP</code>.</li>
</ul>
<p>El <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1880709">bug para eliminar esas preferencias</a> de Firefox sigue abierto, así que hoy (septiembre de 2026) esta vía sigue funcionando.</p>
<h2 id="opción-1-firefox-con-tls-deprecado-en-un-perfil-aparte">Opción 1: Firefox con TLS deprecado, en un perfil aparte</h2>
<p>No bajes la seguridad de tu navegador de diario. Crea un perfil solo para management:</p>
<ol>
<li><code>about:profiles</code> → <strong>Create a New Profile</strong> → nómbralo <code>ilo</code> → <strong>Launch profile in new browser</strong>.</li>
<li>En ese perfil, <code>about:config</code> → busca <code>security.tls.version.enable-deprecated</code> → <code>true</code>.</li>
<li>Abre <code>https://&lt;ilo-ip&gt;/</code> y acepta el certificado autofirmado.</li>
<li>Si sigue sin negociar, <code>security.tls.version.min</code> → <code>1</code> (TLS 1.0, iLO 2) o <code>2</code> (TLS 1.1, iLO 3).</li>
</ol>
<p>Cuando Firefox choca con un sitio TLS 1.0, la página de error trae el botón <strong>Enable TLS 1.0 and 1.1</strong>, que cambia la misma preferencia. Las recetas viejas tocaban cuatro prefs (<code>fallback-limit</code>, <code>min</code>, <code>max</code>, <code>enable-deprecated</code>); en Firefox actual con <code>enable-deprecated</code> basta y <code>min</code> es el respaldo.</p>
<p>Para lanzar ese perfil después:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">firefox -P ilo --no-remote
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="opción-2-edge-en-modo-internet-explorer">Opción 2: Edge en modo Internet Explorer</h2>
<p>Solo Windows. El modo IE usa el motor Trident y el Schannel del sistema, que sí conserva TLS 1.0/1.1.</p>
<ol>
<li><code>edge://settings/defaultBrowser</code> → <strong>Permitir que los sitios se vuelvan a cargar en modo Internet Explorer</strong> → <strong>Permitir</strong> → reinicia Edge.</li>
<li>Abre la URL del iLO → menú <strong>⋯</strong> → <strong>Volver a cargar en modo Internet Explorer</strong>.</li>
<li>Edge recuerda la página en modo IE 30 días; márcala para que no lo olvide.</li>
</ol>
<p>En Windows 11 24H2 y posteriores TLS 1.0/1.1 vienen apagados también en Schannel: si el modo IE tampoco entra, actívalos en <strong>Opciones de Internet → Opciones avanzadas → Usar TLS 1.0 / 1.1</strong> mientras trabajas con el iLO, y apágalos después.</p>
<h2 id="opción-3-desde-el-propio-ilo-por-ssh">Opción 3: desde el propio iLO por SSH</h2>
<p>SSH al iLO sigue funcionando con cualquier OpenSSH si le pides los algoritmos viejos (detalle en <a href="/es/posts/linux/ssh-no-matching-host-key-type-found/">SSH a equipos legacy</a>):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">ssh -o <span class="nv">HostKeyAlgorithms</span><span class="o">=</span>+ssh-rsa <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>    -o <span class="nv">KexAlgorithms</span><span class="o">=</span>+diffie-hellman-group14-sha1 <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>    -c aes256-cbc <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>    Administrator@&lt;ilo-ip&gt;
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dentro, dos ajustes que ayudan a la parte web:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># Ofrecer AES en vez de RC4/3DES (en la UI: Administration → Security → Encryption → Enforce AES/3DES Encryption)</span>
</span></span><span class="line"><span class="cl"><span class="nb">set</span> /map1/config1 <span class="nv">oemhp_enforce_aes</span><span class="o">=</span>yes
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Certificado nuevo (expirado, hostname cambiado): borra el actual; el iLO se reinicia y genera otro autofirmado</span>
</span></span><span class="line"><span class="cl">delete /map1/sslcert1
</span></span></code></pre></td></tr></table>
</div>
</div><p>Forzar AES <strong>no</strong> arregla el error por sí solo: el problema es la versión de TLS, no solo el cifrado. Lo que consigue es que, con TLS 1.0/1.1 ya habilitado en el navegador, la sesión use AES-CBC y no dependas de 3DES (que Firefox solo permite en modo deprecado) ni de RC4 (que ya no existe en ningún navegador).</p>
<p>Y para power, virtual media, usuarios y firmware ni siquiera necesitas la UI: <a href="/es/posts/ilo/comandos-cli/">comandos CLI de iLO</a>.</p>
<h2 id="lo-que-no-sirve">Lo que no sirve</h2>
<ul>
<li><strong>Actualizar el firmware</strong> de iLO 2/3 no cambia el tope de TLS; solo asegúrate de estar en la última (2.33 / 1.94.2) por el resto de fixes. Ver <a href="/es/posts/ilo/actualizar-firmware-ssh/">actualizar firmware por SSH</a>.</li>
<li><strong>Flags de Chrome/Edge</strong>: no existen para TLS 1.0/1.1 desde 2022.</li>
<li><strong>Un Chrome viejo o una VM con Windows 7 e IE11</strong> funciona, pero es peor que un perfil de Firefox: sistema sin parches y navegador sin parches para abrir una interfaz de management.</li>
</ul>
<h2 id="si-es-un-ilo-4">Si es un iLO 4</h2>
<p>iLO 4 con firmware 2.x negocia TLS 1.2 y no tiene este problema. Si un iLO 4 te da <code>ERR_SSL_VERSION_OR_CIPHER_MISMATCH</code>, está en un firmware 1.x: actualízalo (2.8x es la rama final) y el navegador entra sin trucos.</p>
<h2 id="ver-también">Ver también</h2>
<ul>
<li><a href="/es/posts/linux/ssh-no-matching-host-key-type-found/">SSH: &ldquo;no matching host key type found&rdquo;</a> — los mismos iLO 2/3 también rompen el cliente SSH moderno.</li>
<li><a href="/es/posts/windows/navegador-moderno-xp-2003/">Navegar la web moderna en XP y 2003</a> — el caso inverso: sistema viejo contra web nueva.</li>
<li>Referencia externa: <a href="https://supertekboy.com/2021/11/19/accessing-hpe-ilo-3-fails-with-err-ssl-version-or-cipher-mismatch/">HPe iLO 3 fails with ERR_SSL_VERSION_OR_CIPHER_MISMATCH</a>.</li>
</ul>
]]></content:encoded></item></channel></rss>