<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Msix on kenji.blog</title><link>http://kenji.blog/ar/tags/msix/</link><description>Recent content in Msix on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ar</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 30 Aug 2025 04:18:04 +0900</lastBuildDate><atom:link href="http://kenji.blog/ar/tags/msix/index.xml" rel="self" type="application/rss+xml"/><item><title>تثبيت MSIX باستخدام شهادة ذاتية التوقيع</title><link>http://kenji.blog/ar/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/ar/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 تثبيت MSIX باستخدام شهادة ذاتية التوقيع" />&lt;h1 id="تثبيت-msix-باستخدام-شهادة-ذاتية-التوقيع">تثبيت MSIX باستخدام شهادة ذاتية التوقيع
&lt;/h1>&lt;p>عند توزيع التطبيقات على Windows، يعد استخدام &lt;strong>حزمة MSIX&lt;/strong> أمراً مريحاً لأن آلية التثبيت والتحديث موحدة. ومع ذلك، هناك قيد يتمثل في أن MSIX يتطلب &amp;ldquo;شهادة موقعة&amp;rdquo; دائماً.
عندما ترغب في توزيع تطبيق تم تطويره بواسطة شركة أو فرد لأغراض الاختبار، قد تكون هناك مواقف يبدو فيها &amp;ldquo;شراء شهادة توقيع كود تجارية أمراً مبالغاً فيه&amp;rdquo;.&lt;/p>
&lt;p>هنا يأتي دور &lt;strong>الشهادة ذاتية التوقيع (Self-Signed Certificate)&lt;/strong> . تلخص هذه المقالة خطوات إرفاق شهادة ذاتية التوقيع بـ MSIX وجعلها قابلة للتثبيت في بيئة محلية.&lt;/p>
&lt;hr>
&lt;h2 id="1-إنشاء-شهادة-ذاتية-التوقيع">1. إنشاء شهادة ذاتية التوقيع
&lt;/h2>&lt;p>أولاً، قم بتشغيل PowerShell في وضع المسؤول ونفذ الأمر التالي.&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">إنشاء&lt;/span> &lt;span class="n">شهادة&lt;/span> &lt;span class="n">ذاتية&lt;/span> &lt;span class="n">التوقيع&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>ما يتم إنشاؤه هنا هو شهادة &amp;ldquo;لتوقيع الكود&amp;rdquo;.&lt;/p>
&lt;ul>
&lt;li>من السهل العثور عليها لاحقاً إذا أعطيتها اسماً واضحاً باستخدام &lt;code>-FriendlyName&lt;/code>.&lt;/li>
&lt;li>يمكنك ضبط تاريخ انتهاء الصلاحية باستخدام &lt;code>-NotAfter&lt;/code>. قمنا بتعيينه إلى 10 سنوات هذه المرة.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="2-تصدير-ملف-pfx">2. تصدير ملف PFX
&lt;/h2>&lt;p>قم بتصدير الشهادة التي تم إنشاؤها بتنسيق PFX بحيث يمكن استخدامها مع &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">إنشاء&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>ستكون كلمة المرور التي تم تعيينها في هذا الوقت ( &lt;code>password&lt;/code> في المثال) مطلوبة لعملية التوقيع اللاحقة.&lt;/p>
&lt;hr>
&lt;h2 id="3-تثبيت-الشهادة-الذاتية-في-المراجع-المصدقة-الجذرية-الموثوقة">3. تثبيت الشهادة الذاتية في المراجع المصدقة الجذرية الموثوقة
&lt;/h2>&lt;p>الشهادة التي تم إنشاؤها لن يثق بها Windows كما هي. لتثبيتها، يجب عليك استيرادها من &lt;code>certmgr.msc&lt;/code> إلى &lt;strong>[المراجع المصدقة الجذرية الموثوقة] -&amp;gt; [الشهادات]&lt;/strong> .&lt;/p>
&lt;p>إذا قمت باستيراد الشهادة المصدرة ( &lt;code>.cer&lt;/code> أو &lt;code>.pfx&lt;/code> )، فسيتم التعامل معها كشهادة موثوقة على جهاز الكمبيوتر المستهدف.
نتيجة لذلك، حتى إذا قمت بتوقيع MSIX، فلن يظهر تحذير &amp;ldquo;شهادة غير موثوقة&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="4-توقيع-المثبت-msix">4. توقيع المثبت (MSIX)
&lt;/h2>&lt;p>أخيراً، استخدم شهادة PFX التي تم إنشاؤها لتوقيع MSIX. يتم تضمين &lt;code>signtool&lt;/code> في Visual Studio و 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">توقيع&lt;/span> &lt;span class="n">المثبت&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> يحدد خوارزمية التوقيع.&lt;/li>
&lt;li>حدد ملف PFX باستخدام &lt;code>/f&lt;/code> ومرر كلمة المرور باستخدام &lt;code>/p&lt;/code>.&lt;/li>
&lt;li>أخيراً، حدد مسار ملف MSIX.&lt;/li>
&lt;li>إذا لم يتم العثور على مسار signtool، فحدده بالمسار الكامل. في بيئتي، كان في الموقع التالي.&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>يكمل هذا التوقيع، وسيتم إكمال حزمة MSIX التي يمكن تثبيتها على جهاز الكمبيوتر المستهدف.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة">الخلاصة
&lt;/h2>&lt;ul>
&lt;li>إنشاء شهادة ذاتية التوقيع باستخدام &lt;strong>New-SelfSignedCertificate&lt;/strong>&lt;/li>
&lt;li>تصدير PFX باستخدام &lt;strong>Export-PfxCertificate&lt;/strong>&lt;/li>
&lt;li>تثبيت الشهادة في &lt;strong>المراجع المصدقة الجذرية الموثوقة&lt;/strong>&lt;/li>
&lt;li>توقيع MSIX باستخدام &lt;strong>signtool&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>من خلال فهم هذا التدفق، يمكنك التحقق من التشغيل وتوزيع الاختبار في بيئة محلية دون شراء شهادة تجارية.
بالطبع، بالنسبة للتوزيع التجاري الفعلي، تعد الشهادة الصادرة عن مرجع مصدق ضرورية، لكن هذه الطريقة مفيدة جداً في مرحلة التطوير والتحقق.&lt;/p>
&lt;hr>
&lt;p>👉 استخدمنا installer.msix كمثال هذه المرة، ولكن يمكن تطبيق نفس الإجراء على التطبيقات التي قمت بإنشائها بنفسك.&lt;/p>
&lt;hr></description></item></channel></rss>