<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IT / Tecnología on kenji.blog</title><link>http://kenji.blog/es/categories/it-/-tecnolog%C3%ADa/</link><description>Recent content in IT / Tecnología on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 30 Aug 2025 04:18:04 +0900</lastBuildDate><atom:link href="http://kenji.blog/es/categories/it-/-tecnolog%C3%ADa/index.xml" rel="self" type="application/rss+xml"/><item><title>Habilitar la instalación de msix con un certificado autofirmado</title><link>http://kenji.blog/es/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/</link><pubDate>Sat, 30 Aug 2025 04:18:04 +0900</pubDate><guid>http://kenji.blog/es/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/</guid><description>&lt;img src="http://kenji.blog/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/img.png" alt="Featured image of post Habilitar la instalación de msix con un certificado autofirmado" />&lt;h1 id="habilitar-la-instalación-de-msix-con-un-certificado-autofirmado">Habilitar la instalación de msix con un certificado autofirmado
&lt;/h1>&lt;p>Al distribuir aplicaciones en Windows, el uso del &lt;strong>paquete MSIX&lt;/strong> es conveniente ya que unifica los mecanismos de instalación y actualización. Sin embargo, MSIX tiene la restricción de requerir un &amp;ldquo;certificado firmado obligatoriamente&amp;rdquo;.
En ocasiones, cuando se desea distribuir una aplicación desarrollada por una empresa o un individuo con fines de prueba, &amp;ldquo;comprar un certificado de firma de código comercial puede resultar excesivo&amp;rdquo;.&lt;/p>
&lt;p>Ahí es donde resulta útil el &lt;strong>certificado autofirmado (Self-Signed Certificate)&lt;/strong>. En este artículo, resumiremos los pasos para adjuntar un certificado autofirmado a un MSIX para permitir su instalación en un entorno local.&lt;/p>
&lt;hr>
&lt;h2 id="1-crear-un-certificado-autofirmado">1. Crear un certificado autofirmado
&lt;/h2>&lt;p>Primero, inicie PowerShell en modo administrador y ejecute el siguiente comando.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">Crear&lt;/span> &lt;span class="n">certificado&lt;/span> &lt;span class="n">autofirmado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">New-SelfSignedCertificate&lt;/span> &lt;span class="n">-Type&lt;/span> &lt;span class="n">CodeSigningCert&lt;/span> &lt;span class="n">-Subject&lt;/span> &lt;span class="s2">&amp;#34;CN=035A9AAC-915B-4CE1-AE39-1A101BED42F5&amp;#34;&lt;/span> &lt;span class="n">-CertStoreLocation&lt;/span> &lt;span class="n">Cert&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">CurrentUser&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">My&lt;/span> &lt;span class="n">-NotAfter&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">Get-Date&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="py">AddYears&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mf">10&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">-KeyUsage&lt;/span> &lt;span class="n">DigitalSignature&lt;/span> &lt;span class="n">-FriendlyName&lt;/span> &lt;span class="s2">&amp;#34;kenjinote&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Lo que se crea aquí es un certificado para &amp;ldquo;firma de código&amp;rdquo;.&lt;/p>
&lt;ul>
&lt;li>Asignar un nombre fácil de entender con &lt;code>-FriendlyName&lt;/code> facilita su búsqueda posterior.&lt;/li>
&lt;li>La fecha de vencimiento se puede ajustar con &lt;code>-NotAfter&lt;/code>. En esta ocasión, está configurada para 10 años.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="2-exportar-el-archivo-pfx">2. Exportar el archivo PFX
&lt;/h2>&lt;p>Exporte el certificado creado en formato PFX para poder utilizarlo con &lt;code>signtool&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">Crear&lt;/span> &lt;span class="n">pfx&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$cert&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">Get-ChildItem&lt;/span> &lt;span class="n">Cert&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">CurrentUser&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">My&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Where-Object&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">$_&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">FriendlyName&lt;/span> &lt;span class="o">-eq&lt;/span> &lt;span class="s2">&amp;#34;kenjinote&amp;#34;&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$password&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">ConvertTo-SecureString&lt;/span> &lt;span class="n">-String&lt;/span> &lt;span class="s2">&amp;#34;password&amp;#34;&lt;/span> &lt;span class="n">-Force&lt;/span> &lt;span class="n">-AsPlainText&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Export-PfxCertificate&lt;/span> &lt;span class="n">-Cert&lt;/span> &lt;span class="nv">$cert&lt;/span> &lt;span class="n">-FilePath&lt;/span> &lt;span class="s2">&amp;#34;D:\pfx\cert.pfx&amp;#34;&lt;/span> &lt;span class="n">-Password&lt;/span> &lt;span class="nv">$password&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>La contraseña configurada en este momento (en el ejemplo, &lt;code>password&lt;/code>) será necesaria para la posterior operación de firma.&lt;/p>
&lt;hr>
&lt;h2 id="3-instalar-el-certificado-autofirmado-en-las-entidades-de-certificación-raíz-de-confianza">3. Instalar el certificado autofirmado en las entidades de certificación raíz de confianza
&lt;/h2>&lt;p>El certificado creado no es confiable para Windows por defecto. Para instalarlo, debe importarse desde &lt;code>certmgr.msc&lt;/code> en &lt;strong>[Entidades de certificación raíz de confianza] → [Certificados]&lt;/strong>.&lt;/p>
&lt;p>Si importa el certificado exportado (&lt;code>.cer&lt;/code> o &lt;code>.pfx&lt;/code>), se tratará como un certificado de confianza en la PC de destino.
Con esto, no aparecerá la advertencia de &amp;ldquo;certificado no confiable&amp;rdquo; al firmar el MSIX.&lt;/p>
&lt;hr>
&lt;h2 id="4-firmar-el-instalador-msix">4. Firmar el instalador (MSIX)
&lt;/h2>&lt;p>Finalmente, utilice el certificado PFX creado para firmar el MSIX. &lt;code>signtool&lt;/code> está incluido en Visual Studio o Windows SDK.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">Firmar&lt;/span> &lt;span class="n">el&lt;/span> &lt;span class="n">instalador&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">signtool&lt;/span> &lt;span class="n">sign&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">fd&lt;/span> &lt;span class="n">SHA256&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">f&lt;/span> &lt;span class="s2">&amp;#34;D:\pfx\cert.pfx&amp;#34;&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="s2">&amp;#34;password&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;C:\installer\installer.msix&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>&lt;code>/fd SHA256&lt;/code> especifica el algoritmo de firma.&lt;/li>
&lt;li>&lt;code>/f&lt;/code> especifica el archivo PFX y &lt;code>/p&lt;/code> proporciona la contraseña.&lt;/li>
&lt;li>Finalmente, especifique la ruta del archivo MSIX.&lt;/li>
&lt;li>Si la ruta de signtool no está configurada, especifique la ruta completa. En mi entorno, se encontraba en la siguiente ubicación:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\microsoft.windows.sdk.buildtools&lt;/span>&lt;span class="se">\10&lt;/span>&lt;span class="s2">.0.26100.1742&lt;/span>&lt;span class="se">\b&lt;/span>&lt;span class="s2">in&lt;/span>&lt;span class="se">\10&lt;/span>&lt;span class="s2">.0.26100.0&lt;/span>&lt;span class="se">\x64&lt;/span>&lt;span class="s2">\signtool.exe&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Con esto, la firma se ha completado y el MSIX instalable en la PC de destino está listo.&lt;/p>
&lt;hr>
&lt;h2 id="resumen">Resumen
&lt;/h2>&lt;ul>
&lt;li>Crear un certificado autofirmado con &lt;strong>New-SelfSignedCertificate&lt;/strong>&lt;/li>
&lt;li>Exportar el PFX con &lt;strong>Export-PfxCertificate&lt;/strong>&lt;/li>
&lt;li>Instalar el certificado en las &lt;strong>Entidades de certificación raíz de confianza&lt;/strong>&lt;/li>
&lt;li>Firmar el MSIX con &lt;strong>signtool&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>Si comprende este flujo, podrá realizar pruebas de funcionamiento y distribuciones de prueba en un entorno local sin comprar un certificado comercial.
Por supuesto, para la distribución comercial real, un certificado emitido por una autoridad de certificación es obligatorio, pero este método es muy útil en las etapas de desarrollo y verificación.&lt;/p>
&lt;hr>
&lt;p>👉 En esta ocasión usamos installer.msix como ejemplo, pero el mismo procedimiento se puede aplicar a aplicaciones de desarrollo propio.&lt;/p>
&lt;hr></description></item></channel></rss>