<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>自己証明書 on kenji.blog</title><link>http://kenji.blog/pt/tags/%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8/</link><description>Recent content in 自己証明書 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>pt</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 30 Aug 2025 04:18:04 +0900</lastBuildDate><atom:link href="http://kenji.blog/pt/tags/%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8/index.xml" rel="self" type="application/rss+xml"/><item><title>Tornar possível instalar o msix com um certificado autoassinado</title><link>http://kenji.blog/pt/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/pt/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 Tornar possível instalar o msix com um certificado autoassinado" />&lt;h1 id="tornar-possível-instalar-o-msix-com-um-certificado-autoassinado">Tornar possível instalar o msix com um certificado autoassinado
&lt;/h1>&lt;p>Ao distribuir aplicativos no Windows, usar um &lt;strong>pacote MSIX&lt;/strong> é conveniente porque unifica os mecanismos de instalação e atualização. No entanto, o MSIX tem a restrição de que &amp;ldquo;um certificado assinado é sempre necessário&amp;rdquo;.
Quando você deseja distribuir para teste um aplicativo desenvolvido por uma empresa ou indivíduo, pode haver situações em que &amp;ldquo;comprar um certificado de assinatura de código comercial é um exagero&amp;rdquo;.&lt;/p>
&lt;p>É aí que um &lt;strong>certificado autoassinado (Self-Signed Certificate)&lt;/strong> é útil. Neste artigo, resumiremos as etapas para adicionar um certificado autoassinado ao MSIX e permitir que ele seja instalado em um ambiente local.&lt;/p>
&lt;hr>
&lt;h2 id="1-criar-um-certificado-autoassinado">1. Criar um certificado autoassinado
&lt;/h2>&lt;p>Primeiro, inicie o PowerShell no modo de administrador e execute o seguinte 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">Criar&lt;/span> &lt;span class="n">certificado&lt;/span> &lt;span class="n">autoassinado&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>O que é criado aqui é um certificado para &amp;ldquo;assinatura de código&amp;rdquo;.&lt;/p>
&lt;ul>
&lt;li>Dar a ele um nome fácil de entender com &lt;code>-FriendlyName&lt;/code> facilita a localização posterior.&lt;/li>
&lt;li>Você pode ajustar a data de expiração com &lt;code>-NotAfter&lt;/code>. Desta vez, está definido para 10 anos.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="2-exportar-o-arquivo-pfx">2. Exportar o arquivo PFX
&lt;/h2>&lt;p>Exporte o certificado criado no formato PFX para que possa ser usado com &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">Criar&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>A senha definida neste momento (no exemplo, &lt;code>password&lt;/code>) será necessária para a operação de assinatura posterior.&lt;/p>
&lt;hr>
&lt;h2 id="3-instalar-o-certificado-autoassinado-em-autoridades-de-certificação-raiz-confiáveis">3. Instalar o certificado autoassinado em Autoridades de Certificação Raiz Confiáveis
&lt;/h2>&lt;p>O certificado criado não é confiável para o Windows como está. Para instá-lo, você precisa importá-lo de &lt;code>certmgr.msc&lt;/code> para &lt;strong>[Autoridades de Certificação Raiz Confiáveis] -&amp;gt; [Certificados]&lt;/strong> .&lt;/p>
&lt;p>Se você importar o certificado exportado ( &lt;code>.cer&lt;/code> ou &lt;code>.pfx&lt;/code> ), ele será tratado como um certificado confiável no PC de destino.
Isso evita que o aviso de &amp;ldquo;certificado não confiável&amp;rdquo; apareça mesmo se você assinar o MSIX.&lt;/p>
&lt;hr>
&lt;h2 id="4-assinar-o-instalador-msix">4. Assinar o instalador (MSIX)
&lt;/h2>&lt;p>Finalmente, use o certificado PFX criado para assinar o MSIX. O &lt;code>signtool&lt;/code> está incluído no Visual Studio e no 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">Assinar&lt;/span> &lt;span class="n">o&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 o algoritmo de assinatura.&lt;/li>
&lt;li>Especifique o arquivo PFX com &lt;code>/f&lt;/code> e passe a senha com &lt;code>/p&lt;/code>.&lt;/li>
&lt;li>Finalmente, especifique o caminho para o arquivo MSIX.&lt;/li>
&lt;li>Se o caminho para signtool não estiver definido, especifique o caminho completo. No meu ambiente, ele estava localizado no seguinte local.&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>Isso conclui a assinatura e completa um MSIX que pode ser instalado no PC de destino.&lt;/p>
&lt;hr>
&lt;h2 id="resumo">Resumo
&lt;/h2>&lt;ul>
&lt;li>Crie um certificado autoassinado com &lt;strong>New-SelfSignedCertificate&lt;/strong>&lt;/li>
&lt;li>Exporte o PFX com &lt;strong>Export-PfxCertificate&lt;/strong>&lt;/li>
&lt;li>Instale o certificado nas &lt;strong>Autoridades de Certificação Raiz Confiáveis&lt;/strong>&lt;/li>
&lt;li>Assine o MSIX com &lt;strong>signtool&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>Ao seguir este fluxo, você pode verificar a operação e distribuir para teste no ambiente local sem comprar um certificado comercial.
Claro, um certificado emitido por uma autoridade de certificação é essencial para distribuição comercial real, mas esse método é muito conveniente nos estágios de desenvolvimento e verificação.&lt;/p>
&lt;hr>
&lt;p>👉 Desta vez, usamos installer.msix como exemplo, mas você pode aplicar o mesmo procedimento ao seu próprio aplicativo.&lt;/p>
&lt;hr></description></item></channel></rss>