برقراری امنیت در یک وب سایت با استفاده از Certbot یکی از فاکتورهای کلیدیست که شما باید قبل از ادامه بقای وب سایت تان آن را مورد بررسی قرار دهید. استفاده از HTTPS از طریق گواهینامه امنیتی (SSL Certificate) برای امن کردن ترافیک ارسالی از مرورگرهای وب به سرورهای وب سایت امری ضروریست و کابران برای تبادل دیتا با وب سایت شما باید به صورت کاملا امن در ارتباط باشند و ترافیک ارسالی از بستر امن انتقال یابد.
در اکثر موارد گواهینامه های امنیتی پولی هستند و به صورت سالانه تمدید میشوند. Let's Encrypt Certificate یکی از گواهینامه های اتوماتیک، اوپن سورس و رایگان میباشد که شما برای Encrypt کردن سایت تان از آن استفاده کنید. گواهینامه بعد از 90 روز منقضی میشود و بدون هزینه مجدد تمدید میگردد.
همچنین توصیه میشود مطالعه کنید :
نصب و راه اندازی Let's Encrypt SSL Certificate برای امن کردن Apache در CentOS 7 (به زودی)
نصب و راه اندازی Let's Encrypt SSL Certificate برای امن کردن Nginx در CentOS 8 (به زودی)
نصب و راه اندازی Let's Encrypt SSL Certificate برای امن کردن Nginx در CentOS 7
در این مقاله ما به شما نحوه نصب Let’s Encrypt SSL Certificate با استفاده از ابزار Certbot بر روی وب سرور آپاچی را آموزش خواهیم داد و همچنین نحوه کانفیگ برای تمدید اتوماتیک روی CentOS 8 را شرح خواهیم داد.
پیش نیاز ها
قبل از اینکه کار را شروع کنید از موارد زیر مطمئن شوید.
1 - خرید یک دامنه از ناسا هاست، که از طریق DNS سرورهای ما، به ip آدرس پابلیک وب سایت تان Bind شده باشد، که در اینجا ما از دامین up2space.ir که به ip آدرس 37.156.145.21 بایند شده استفاده خواهیم کرد.
2 - یک ماشین با سیستم عامل CentOS 8 به همراه وب سرور آپاچی (سرویس httpd) که روی سیستم نصب و در حال اجرا باشد. شما میتوانید از نصب و در حال اجرا بودن آپاچی خود با استفاده از دستورات زیر مطمئن شوید. در صورتیکه سرویس httpd در حال اجرا نبود، میتوانید آنرا با دستور systemctl start httpd راه اندازی کنید.
در مرحله بعد، میبایست دسترسی به پورت های 80 و 443 را در فایروال باز کنید. برای این کار میتوانید از دستورات زیر استفاده کنید.
همچنین توصیه میشود مطالعه کنید :
آموزش تصویری نصب CentOS 8 (نسخه سرور و دسکتاپ)
مرحله 1 : نحوه نصب و راه اندازی Certbot در CentOS 8
Certbot یک کلاینتی است که مراحل نصب گواهینامه امنیتی را به صورت اتوماتیک انجام میدهد. این برنامه گواهینامه را از وب سایت رسمی Let's Encrypt دریافت میکند و آن را بدون دردسر روی وب سایت شما نصب میکند.
سرت بات (Certbot) کاملا رایگان است و به شما امکان این را میدهد که گواهینامه را به شیوه ای خیلی ساده با ایجاد دستورالعمل های کانفیگی با توجه به تنظیمات وب سرورتان نصب کنید.
قبل از دانلود Certbot لطفا پکیج های مورد نیاز برای ایجاد و کانفیگ یک ارتباط Encrypt شده نصب کنید.
برای دانلود Certbot از دستور curl همانند زیر استفاده کنید.
سپس، فایل Certbot را به پوشه /usr/local/bin انتقال داده و پرمیژن های اجرایی را با استفاده از دستور chmod به فایل اختصاص دهید.
مرحله 2 : ایجاد یک ویرچوال هاست در Apache
مرحله بعدی، در حقیت ایجاد یک فایل virtual host برای دامین مان up2space.ir میباشد. مثلا فرض کنید که root وب سرور شما در مسیر زیر باشد، (جاییکه فایل های HTML خود را در آن قرار خواهید داده اید) که ما دایرکتوری را با دستور زیر ایجاد میکنیم.
یک فایل index.html همانند زیر در مسیر بالا میسازیم.
سپس، یک فایل ویرچوال هاست همانند زیر ایجاد میکنیم.
و تنظیمات زیر را به آن اضافه میکنیم.
تغییرات را ذخیره کنید و خارج شوید.
پرمیژن های مورد نیاز را به پوشه root وب سرور همانند زیر اختصاص میدهیم.
برای اینکه تغییرات اعمال شوند سرویس آپاچی را ریست میکنیم.
مرحله 3 : نصب Let’s Encrypt SSL Certificate در CentOS 8
در این مرحله Certbot را همانند زیر برای نصب گواهینامه Let's Encrypt اجرا میکنیم.
یکسری پکیج های پایتون همانند زیر نصب خواهد شد.
بعد از نصب موفق پکیج ها، Certbot را که اجرا میکنیم یکسری سوالات پرسیده میشود و همچنین راهنمایی هایی بابت پاسخ به سوالات که شما را برای تکمیل نصب گواهینامه Let's Encrypt راهنمایی خواهد کرد.
اگر همه چیز به خوبی پیش رود، شما یک پیغام دریافت خواهید کرد با این مضمون که امنیت وب سایت شما با استفاده از گواهینامه Let's Encrypt برقرار شده است. اعتبار گواهینامه نیز نمایش داده میشود که عموما 90 روزه (از بعد از دریافت گواهینامه) است.
اکنون به فایل ویرچوال هاست خود برگردید و خط های زیر را به کانفیگ آن اضافه کنید.
فایل را ذخیره و از آن خارج شوید.
بعد از همه تغییرات فایل باید چیزی شبیه به زیر باشد.
مجدد سرویس آپاچی را restart کنید.
مرحله 4 : بررسی گواهینامه Let's Encrypt SSL
برای بررسی اینکه همه چیز به درستی کار میکند، وب سایت خود را روی مرورگر باز کنید و آدرس سرور را مشاهده نمایید. حالا شما باید علامت قفل سبز رنگ را در ابتدای url تان ببینید.
برای دریافت جزییات بیشتر روی علامت قفل کلیک کنید و گزینه Certificate روی منوی کشویی پایین را کلیک کنید.
در اینجا جزییات گواهینامه روی یک پنجره جدید پاپ آپ شده نمایش داده خواهد شد.
همچنین شما میتوانید وب سایت خود را در سایت https://www.ssllabs.com/ssltest/ تست کنید که سایت شما باید همانند زیر رتبه A دریافت کند.
مرحله 5 : تمدید خودکار گواهینامه Let's Encrypt
گواهینامه Let's Encrypt تنها به مدت 90 روز اعتبار دارد. معمولا پروسه تمدید توسط پکیج Cenrtbot که اسکریپت Renew آن به دایرکتوری /etc/cron.d اضافه شده باشد انجام میگردد. اسکریپت در روز دو بار اجرا میشود و به صورت اتوماتیک هر گواهینامه ای را که 30 روز از تاریخ انقضای آن باقی مانده تمدید خواهد کرد.
برای تست پروسه تمدید خودکار، کافیست دستور زیر را به منظور تست آزمایشی Certbot اجرا کنید.
اگر هیچ خطایی دریافت نکردید، خیالتان راحت باشد که پروسه تمدید نیز بدون هیچ مشکلی اجرا میشود.
همچنین توصیه میشود مطالعه کنید :
دستور Cronjob و Crontab برای زمانبندی کارها در لینوکس
به پایان مقاله رسیدیم. در این پست ما نحوه استفاده از Certbot به منظور نصب و راه اندازی گواهینامه Let's Encrypt روی وب سرور Apache و سیستم عامل CentOS 8 نمایش دادیم. فراموش نکنید که سوالات و نظرات خود را با ما به اشتراک بگذارید.
در اکثر موارد گواهینامه های امنیتی پولی هستند و به صورت سالانه تمدید میشوند. Let's Encrypt Certificate یکی از گواهینامه های اتوماتیک، اوپن سورس و رایگان میباشد که شما برای Encrypt کردن سایت تان از آن استفاده کنید. گواهینامه بعد از 90 روز منقضی میشود و بدون هزینه مجدد تمدید میگردد.
همچنین توصیه میشود مطالعه کنید :
نصب و راه اندازی Let's Encrypt SSL Certificate برای امن کردن Apache در CentOS 7 (به زودی)
نصب و راه اندازی Let's Encrypt SSL Certificate برای امن کردن Nginx در CentOS 8 (به زودی)
نصب و راه اندازی Let's Encrypt SSL Certificate برای امن کردن Nginx در CentOS 7
در این مقاله ما به شما نحوه نصب Let’s Encrypt SSL Certificate با استفاده از ابزار Certbot بر روی وب سرور آپاچی را آموزش خواهیم داد و همچنین نحوه کانفیگ برای تمدید اتوماتیک روی CentOS 8 را شرح خواهیم داد.
پیش نیاز ها
قبل از اینکه کار را شروع کنید از موارد زیر مطمئن شوید.
1 - خرید یک دامنه از ناسا هاست، که از طریق DNS سرورهای ما، به ip آدرس پابلیک وب سایت تان Bind شده باشد، که در اینجا ما از دامین up2space.ir که به ip آدرس 37.156.145.21 بایند شده استفاده خواهیم کرد.
2 - یک ماشین با سیستم عامل CentOS 8 به همراه وب سرور آپاچی (سرویس httpd) که روی سیستم نصب و در حال اجرا باشد. شما میتوانید از نصب و در حال اجرا بودن آپاچی خود با استفاده از دستورات زیر مطمئن شوید. در صورتیکه سرویس httpd در حال اجرا نبود، میتوانید آنرا با دستور systemctl start httpd راه اندازی کنید.
کد PHP:
$ sudo yum install httpd
$ sudo systemctl start httpd
$ sudo systemctl status httpd
در مرحله بعد، میبایست دسترسی به پورت های 80 و 443 را در فایروال باز کنید. برای این کار میتوانید از دستورات زیر استفاده کنید.
کد PHP:
$ sudo firewall-cmd --permanent --add-port=80/tcp --zone=public
success
$ sudo firewall-cmd --permanent --add-port=443/tcp --zone=public
success
$ sudo firewall-cmd --reload
success
آموزش تصویری نصب CentOS 8 (نسخه سرور و دسکتاپ)
مرحله 1 : نحوه نصب و راه اندازی Certbot در CentOS 8
Certbot یک کلاینتی است که مراحل نصب گواهینامه امنیتی را به صورت اتوماتیک انجام میدهد. این برنامه گواهینامه را از وب سایت رسمی Let's Encrypt دریافت میکند و آن را بدون دردسر روی وب سایت شما نصب میکند.
سرت بات (Certbot) کاملا رایگان است و به شما امکان این را میدهد که گواهینامه را به شیوه ای خیلی ساده با ایجاد دستورالعمل های کانفیگی با توجه به تنظیمات وب سرورتان نصب کنید.
قبل از دانلود Certbot لطفا پکیج های مورد نیاز برای ایجاد و کانفیگ یک ارتباط Encrypt شده نصب کنید.
کد PHP:
$ sudo yum install mod_ssl openssl
برای دانلود Certbot از دستور curl همانند زیر استفاده کنید.
کد PHP:
$ sudo curl -O https://dl.eff.org/certbot-auto
سپس، فایل Certbot را به پوشه /usr/local/bin انتقال داده و پرمیژن های اجرایی را با استفاده از دستور chmod به فایل اختصاص دهید.
کد PHP:
$ sudo mv certbot-auto /usr/local/bin/certbot-auto
$ sudo chown root /usr/local/bin/certbot-auto
$ sudo chmod 0755 /usr/local/bin/certbot-auto
مرحله 2 : ایجاد یک ویرچوال هاست در Apache
مرحله بعدی، در حقیت ایجاد یک فایل virtual host برای دامین مان up2space.ir میباشد. مثلا فرض کنید که root وب سرور شما در مسیر زیر باشد، (جاییکه فایل های HTML خود را در آن قرار خواهید داده اید) که ما دایرکتوری را با دستور زیر ایجاد میکنیم.
کد PHP:
$ sudo mkdir /var/www/up2space.ir
کد PHP:
$ sudo echo "<h1>Welcome to Apache HTTP server</h1>" > /var/www/up2space.ir/index.html
کد PHP:
$ sudo vim /etc/httpd/conf.d/up2space.ir.conf
کد PHP:
<VirtualHost *:80>
ServerName up2space.ir
ServerAlias www.up2space.ir
DocumentRoot /var/www/up2space.ir/
<Directory /var/www/up2space.ir/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.up2space.ir-error.log
CustomLog /var/log/httpd/www.up2space.ir-access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName up2space.ir
ServerAlias www.up2space.ir
DocumentRoot /var/www/up2space.ir/
<Directory /var/www/up2space.ir/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.up2space.ir-error.log
CustomLog /var/log/httpd/www.up2space.ir-access.log combined
</VirtualHost>
پرمیژن های مورد نیاز را به پوشه root وب سرور همانند زیر اختصاص میدهیم.
کد PHP:
$ sudo chown -R apache:apache /var/www/up2space.ir
کد PHP:
$ sudo systemctl restart httpd
مرحله 3 : نصب Let’s Encrypt SSL Certificate در CentOS 8
در این مرحله Certbot را همانند زیر برای نصب گواهینامه Let's Encrypt اجرا میکنیم.
کد PHP:
$ sudo /usr/local/bin/certbot-auto --apache
بعد از نصب موفق پکیج ها، Certbot را که اجرا میکنیم یکسری سوالات پرسیده میشود و همچنین راهنمایی هایی بابت پاسخ به سوالات که شما را برای تکمیل نصب گواهینامه Let's Encrypt راهنمایی خواهد کرد.
اگر همه چیز به خوبی پیش رود، شما یک پیغام دریافت خواهید کرد با این مضمون که امنیت وب سایت شما با استفاده از گواهینامه Let's Encrypt برقرار شده است. اعتبار گواهینامه نیز نمایش داده میشود که عموما 90 روزه (از بعد از دریافت گواهینامه) است.
اکنون به فایل ویرچوال هاست خود برگردید و خط های زیر را به کانفیگ آن اضافه کنید.
کد PHP:
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/up2space.ir/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/up2space.ir/privkey.pem
بعد از همه تغییرات فایل باید چیزی شبیه به زیر باشد.
کد PHP:
<VirtualHost *:80>
ServerName up2space.ir
ServerAlias www.up2space.ir
DocumentRoot /var/www/up2space.ir/
<Directory /var/www/up2space.ir/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.up2space.ir-error.log
CustomLog /var/log/httpd/www.up2space.ir-access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName up2space.ir
ServerAlias www.up2space.ir
DocumentRoot /var/www/up2space.ir/
<Directory /var/www/up2space.ir/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.up2space.ir.info-error.log
CustomLog /var/log/httpd/www.up2space.ir-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/up2space.ir/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/up2space.ir/privkey.pem
</VirtualHost>
کد PHP:
$ sudo systemctl restart httpd
مرحله 4 : بررسی گواهینامه Let's Encrypt SSL
برای بررسی اینکه همه چیز به درستی کار میکند، وب سایت خود را روی مرورگر باز کنید و آدرس سرور را مشاهده نمایید. حالا شما باید علامت قفل سبز رنگ را در ابتدای url تان ببینید.
برای دریافت جزییات بیشتر روی علامت قفل کلیک کنید و گزینه Certificate روی منوی کشویی پایین را کلیک کنید.
در اینجا جزییات گواهینامه روی یک پنجره جدید پاپ آپ شده نمایش داده خواهد شد.
همچنین شما میتوانید وب سایت خود را در سایت https://www.ssllabs.com/ssltest/ تست کنید که سایت شما باید همانند زیر رتبه A دریافت کند.
مرحله 5 : تمدید خودکار گواهینامه Let's Encrypt
گواهینامه Let's Encrypt تنها به مدت 90 روز اعتبار دارد. معمولا پروسه تمدید توسط پکیج Cenrtbot که اسکریپت Renew آن به دایرکتوری /etc/cron.d اضافه شده باشد انجام میگردد. اسکریپت در روز دو بار اجرا میشود و به صورت اتوماتیک هر گواهینامه ای را که 30 روز از تاریخ انقضای آن باقی مانده تمدید خواهد کرد.
برای تست پروسه تمدید خودکار، کافیست دستور زیر را به منظور تست آزمایشی Certbot اجرا کنید.
کد PHP:
$ sudo /usr/local/bin/certbot-auto renew --dry-run
همچنین توصیه میشود مطالعه کنید :
دستور Cronjob و Crontab برای زمانبندی کارها در لینوکس
به پایان مقاله رسیدیم. در این پست ما نحوه استفاده از Certbot به منظور نصب و راه اندازی گواهینامه Let's Encrypt روی وب سرور Apache و سیستم عامل CentOS 8 نمایش دادیم. فراموش نکنید که سوالات و نظرات خود را با ما به اشتراک بگذارید.
کامنت