<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>هاستینگ Hosting Archives - راهکارهای جامع دیتاسنتر</title>
	<atom:link href="https://vcenter.ir/category/hosting/feed/" rel="self" type="application/rss+xml" />
	<link>https://vcenter.ir/category/hosting/</link>
	<description>دیتاسنتر &#124; سرور &#124; استوریج &#124; مجازی سازی &#124; شبکه &#124; ذخیره سازی و بکاپ</description>
	<lastBuildDate>Tue, 22 Oct 2024 13:25:22 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://vcenter.ir/wp-content/uploads/2016/07/cropped-vcenter.ir-logo-32x32.png</url>
	<title>هاستینگ Hosting Archives - راهکارهای جامع دیتاسنتر</title>
	<link>https://vcenter.ir/category/hosting/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>طریقه نصب گواهینامه SSL روی سرور شخصی</title>
		<link>https://vcenter.ir/how-to-install-an-ssl-certificate-on-a-personal-server/</link>
					<comments>https://vcenter.ir/how-to-install-an-ssl-certificate-on-a-personal-server/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 26 Dec 2015 15:58:05 +0000</pubDate>
				<category><![CDATA[هاستینگ Hosting]]></category>
		<guid isPermaLink="false">http://vcenter.ir/?p=1574</guid>

					<description><![CDATA[<p>طریقه نصب گواهینامه SSL روی سرور شخصی امنیت رو باید جدی گرفت. هرچند من متخصص امنیت نیستم ولی برای درک اهمیت استفاده از پروتکل‌های امن نیازی به متخصص بودن نیست.&#8230; </p>
<p>نوشته <a href="https://vcenter.ir/how-to-install-an-ssl-certificate-on-a-personal-server/">طریقه نصب گواهینامه SSL روی سرور شخصی</a> اولین بار در <a href="https://vcenter.ir">راهکارهای جامع دیتاسنتر</a>. پدیدار شد.</p>
]]></description>
										<content:encoded><![CDATA[<header class="post-header">
<h1 class="post-title">طریقه نصب گواهینامه SSL روی سرور شخصی</h1>
</header>
<article class="post-content">امنیت رو باید جدی گرفت. هرچند من متخصص امنیت نیستم ولی برای درک اهمیت استفاده از پروتکل‌های امن نیازی به متخصص بودن نیست. اینکه اسم کاربری و کلمه عبور و سایر داده‌های حساس باید به شکل رمزگذاری شده ارسال بشوند دیگر چیزی بدیهی به نظر می‌رسد.بنابراین من تصمیم گرفتم به قول معروف برای «فال و تماشا» یک گواهینامه SSL برای دامنه mehdix.org تهیه و فعال کنم. دستورات این راهنما رو من از سایت ‎آرال بالکان برداشتم.</p>
<h1 id="section">بسته آموزشی گیت‌هاب</h1>
<p>من در این راهنما از یک سرور شخصی روی <a href="https://digitalocean.com/">DigitalOcean</a> و همچنین یک گواهینامه SSL از namecheap.com استفاده کردم. من برای تهیه اینها پولی پرداخت نکردم، بلکه اینها رو از طریق بسته آموزشی گیت‌هاب بدست آوردم. برای اینکار فقط کافیه یک ایمیل دانشگاهی داشته باشید و در پروژه‌ی بالا ثبت نام کنید و به سرویس‌های مختلفی برای تقریبا یک سال به رایگان دسترسی پیدا کنید.</p>
<h1 id="section-1">خرید گواهینامه</h1>
<p>من ابتدا یک گواهینامه <em>Positive SSL</em> از سایت <em>namecheap.com</em> برای دامنه‌ام خریداری کردم. بدون خرید گواهینامه هم می‌شه روی سرور شخصی اتصال <em>https</em> داشت اما توسط مرورگر تایید نمی‌شه و پیام هشدار دریافت می‌کنید. در حالی که گواهینامه بالا بعد از نصب به رنگ سبز در نوار آدرس کروم نمایش داده می‌شه. گواهینامه‌ای که من خریدم فقط برای یک دامنه تنها اعتبار داره و شامل زیردامنه‌ها نخواهد بود. برای اینکار باید از یک گواهینامه گرانتر بنام <em>Wildcard SSL Certificate</em> استفاده کرد.</p>
<h1 id="section-2">تولید کلیدهای اولیه</h1>
<p>اول به ماشین مورد نظر <em>ssh</em> می‌کنیم و دستور زیر رو جهت تولید یک کلید خصوصی وارد می‌کنیم:</p>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">openssl genrsa <span class="m">2048</span> &gt; key.pem</code></pre>
</div>
<p>فراموش نکنید که کلیدها رو به ماشین خودتون <em>scp</em> کنید. حالا یک <strong>درخواست گواهینامه</strong> تولید می‌کنیم:</p>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">openssl req -new -key key.pem -out csr.pem</code></pre>
</div>
<p>به سوالات پرسیده شده جواب بدین و برای گزینه <em>Common Name</em> اسم دامنه خودتون را با پسوندش وارد کنید (بدون پیشوند). لزومی به وارد <em>Challenge Password</em> نیست.</p>
<p>در هنگام خرید گواهینامه در سایت صادرکننده از ما درخواست <em>csr</em> خواهد شد که مخفف کلمه <strong>Certificate Signing Request</strong> است. در آنجا جهت فعالسازی گواهینامه و انجام کامل عملیات صدور باید محتویات فایل<em>csr.pem</em> را کپی کنیم. بعد از این مرحله و تکمیل مراحل صدور یک فایل زیپ شده حاوی فایل‌های زیر برای ما ایمیل خواهد شد:</p>
<ul>
<li>yourdomain_extension.crt</li>
<li>COMODORSADomainValidationSecureServerCA.crt</li>
<li>COMODORSAAddTrustCA.crt</li>
<li>AddTrustExternalCARoot.crt</li>
</ul>
<p>حال باید از روی اینها ما یک <em>Certificate Bundle</em> بسازیم:</p>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">cat STAR_yourdomain_ext.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt &gt; bundle.cer</code></pre>
</div>
<h1 id="section-3">کپی فایل‌های گواهینامه</h1>
<p>من روی سرورم اوبونتو ۱۴.۰۴ نصب کردم و برای نصب nginx تنها کافی بود که دستور زیر رو وارد کنم:</p>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">sudo apt-get install ngingx</code></pre>
</div>
<p>برای کپی کردن فایل‌ها مراحل زیر رو انجام می‌دیم:</p>
<ol>
<li><code>sudo mkdir /etc/nginx/ssl</code></li>
<li><code>sudo mv PATH_TO_BUNDLE_FILE /etc/nginx/ssl/</code></li>
<li><code>sudo mv PATH_TO_KEY.PEM_FILE /etc/nginx/ssl/</code></li>
<li><code>sudo chmod 600 /etc/nginx/ssl</code></li>
</ol>
<p>دستور آخر دسترسی به پوشه فوق رو محدود به مالک می‌کنه. چون من با کاربری غیر از روت به دستگاه وصل شدم و با کاربر روت این پوشه رو ساختم دیگر تنها روته که می‌تونه رو این پوشه بخونه و بنویسه.</p>
<h1 id="nginx">تنظیم nginx</h1>
<p>حالا <em>nginx</em> رو تنظیم می‌کنیم که همه ترافیک <em>http</em>‌ رو بفرسته روی <em>https</em>:</p>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">sudo vim /etc/nginx/sites-available/default</code></pre>
</div>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">server <span class="o">{</span>
        listen <span class="m">80</span> default_server<span class="p">;</span>

        server_name mehdix.org<span class="p">;</span>

        <span class="k">return</span>   <span class="m">301</span> https://<span class="nv">$server_name$request_uri</span><span class="p">;</span>
<span class="o">}</span></code></pre>
</div>
<p>روی پورت ۸۰ گوش کن و هرچه درخواست برای <em>mehdix.org</em> بدستت رسید بفرست با کد ۳۰۱ روی همین سرور ولی با <em>https</em>. حالا وقت تنظیمات خود <em>https</em> رسیده:</p>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">server <span class="o">{</span>
        listen 443<span class="p">;</span>

        server_name mehdix.org<span class="p">;</span>

        root /usr/share/nginx/html<span class="p">;</span>
        index index.html index.htm<span class="p">;</span>

        ssl on<span class="p">;</span>
        ssl_certificate /etc/nginx/ssl/bundle.cer<span class="p">;</span>
        ssl_certificate_key /etc/nginx/ssl/key.pem<span class="p">;</span>
<span class="o">}</span></code></pre>
</div>
<p>و یک ریستات و والسلام:</p>
<div class="highlight">
<pre><code class="language-bash" data-lang="bash">sudo service nginx restart</code></pre>
</div>
<p>و این هم رنگ خوش سبز <em>https</em> در کروم:</p>
<p><img decoding="async" src="http://mehdix.ir/assets/pimg/https.png" alt="image" /></p>
</article>
<p>نوشته <a href="https://vcenter.ir/how-to-install-an-ssl-certificate-on-a-personal-server/">طریقه نصب گواهینامه SSL روی سرور شخصی</a> اولین بار در <a href="https://vcenter.ir">راهکارهای جامع دیتاسنتر</a>. پدیدار شد.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vcenter.ir/how-to-install-an-ssl-certificate-on-a-personal-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
