نصب ssl certificate در Centos 7
در این آموزش نحوه نصب و راه اندازی SSL Certificate در سیستم عامل Centos 7 بصورت دستی و بدون استفاده از کنترل پنل های هاستینگ رو بررسی میکنیم. همینجور که میدونیم SSL (Security Socket Layer) یک پروتکل مورد استفاده از تبادل اطلاعات وب بصورت رمزنگاری شده است ، در این آموزش ما نحوه نصب SSL در وب سرور آپاچی رو بررسی میکنیم.
اگر وب سرور آپاچی در سیستم عامل شما نصب هست نیاز به اجرای کدهای زیر نیست ولی اگه نصب نیست از طریق دستورات زیر نصب و راه اندازی میکنیم
sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
آموزش نصب Let’s Encrypt SSL Certificate
Let’s Encrypt یک سرتیفیکیت رایگان است ، در این آموزش دامنه ی فرضی ما برای نصب “blue-test.com” است ، توجه داشته باشین که برای نصب در سرور خودتون باید دامنه خودتون رو به جای دامنه بالا قرار بدین
ابتدا mod_ssl رو نصب میکنیم
yum -y update yum -y install mod_ssl
سپس یه پوشه برای تنظیمات دامنه میسازیم
mkdir /var/www/blue-test.com
و فایل زیر رو ایجاد میکنیم
nano /etc/httpd/conf.d/blue-test.com.conf
محتویات زیر رو در فایل بالا وارد میکنیم
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/var/www/blue-test.com" ServerName blue-test.com ServerAlias www.blue-test.com ErrorLog "/var/log/httpd/test.error_log" CustomLog "/var/log/httpd/test.access_log" common </VirtualHost>
و پرمیژن اون رو فیکس میکنیم
chown -R apache:apache /var/www/blue-test.com
نصب Certbot
قبل از نصب cerbot ابتدا باید بررسی کنیم که EPEL repository نصب هست یا نه که با دستور زیر اقدام به نصب میکنیم
yum -y install epel-release
yum -y install yum-utils
yum -y install certbot-apache
سپس با دستور زیر اجراش میکنیم
certbot
و از شما سوال زیر رو میپرسه
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apacheStarting new HTTPS connection (1): acme-v01.api.letsencrypt.org Which names would you like to activate HTTPS for? ------------------------------------------------------------------------------- 1: blue-test.com 2: www.blue-test.com ------------------------------------------------------------------------------- Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
سپس برای سوال بالا دکمه enter رو میزنیم ، تا هر 2 تا دامنه blue-test.com و www.blue-test.com برای ریدایرکت به https تایید بشن ، سپس سوال دیگه ای پرسیده میشه
Choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- 1: No redirect – Make no further changes to the web server configuration. 2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
با انتخاب شماره 2 ، آدرس همه لینک های سایت https میشه
You should see the output below if the process is done correctly ------------------------------------------------------------------------------- Congratulations! You have successfully enabled and You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=blue-test.com https://www.ssllabs.com/ssltest/analyze.html?d=www.blue-test.com -------------------------------------------------------------------------------
تمدید خودکار سرتیفیکیت SSL
ویژگی خوب Let’s Encrypt امکان تمدید خودکار اون هست ، برای تنظیم تمدید خودکار ssl Let’s Encrypt این مراحل رو انجام میدیم و دستور زیر رو وارد میکنیم و ادیتور پیش فرض رو nano قرار میدیم و از crontab برای کرون جاب استفاده میکنیم
export EDITOR=/bin/nano
crontab -e
سپس ssl Let’s Encrypt با دستور زیر 2 بار در روز اجرا میشه
* */12 * * * /usr/bin/certbot renew >/dev/null 2>&1
نصب ssl certificate در Centos 7
آموزش نصب Comodo SSL Certificate
COMODO یک سرتیفیکیت غیر رایگان و پولی برای رمز گذاری ترافیک سرور هست ، بعد از خرید این سرتیفیکیت ، برای نصبش ابتدا ComodoRSACA.crt و Primary Certificate (domain_name.crt) رو دانلود میکنیم و به سرورمون منتقل میکنیم. بعد فایل کانفیگ آپاچی رو پیدا میکنیم که معمولا به اسم httpd.conf یا apache2.conf هست و در آدرس /etc/httpd/ یا /etc/apache2/ میشه پیداش کرد. همچنین با دستور زیر نیز محل فایل رو میشه پیدا کرد
grep -i -r "SSLCertificateFile" /etc/httpd/
برای فعال کردن SSL باید دستورات زیر رو در <VirtualHost> قرار بدین
<VirtualHost 192.168.1.1> DocumentRoot /var/www/blue-test.com ServerName www.blue-test.com SSLEngine on SSLCertificateFile /var/www/blue-test.com.crt SSLCertificateKeyFile /var/www/your_private.key SSLCertificateChainFile /var/www/ComodoCA.crt </VirtualHost>
- 192.168.1.1 : به جای این مقدار آی پی سرور رو قرار میدیم
- در بخش های SSLCertificateFile ، SSLCertificateKeyFile و SSLCertificateChainFile هم آدرس فایل های SSL رو که به این پوشه ها منتقل کردیم میدیم
برای تست اینکه آیا تنظیمات درست اعمال شدن و خطایی در وب سرور مشاهده نمیشه ، وب سرور رو یکبار ریستارت میکنیم
apachectl configtest
apachectl stop
apachectl start