در این مقاله، نحوه نصب گواهی SSL در CentOS 7 را یاد خواهید گرفت.
SSL ( لایه امنیتی سوکت ) ( Security Socket Layer ) یک پروتکل وب است که برای محافظت از ترافیک به سرور شما از طریق رمزگذاری استفاده می شود. این بدان معناست که تمام اطلاعات قفل شده است و فقط گیرنده مورد نظر می تواند به آن دسترسی پیدا کند. پس با ما تا انتهای این مقاله همراه باشید تا این موضوع را بررسی کنیم.
گواهی SSL چیست؟
گواهی SSL (Secure Sockets Layer) یک فناوری امنیتی استاندارد برای برقراری یک پیوند رمزگذاری شده بین سرور و مرورگر کاربر است. این پیوند تضمین میکند که تمامی دادههای منتقل شده بین سرور و مرورگر خصوصی و یکپارچه باقی میماند. در حال حاضر، پروتکل SSL به وسیله پروتکل TLS (Transport Layer Security) جایگزین شده است، اما هنوز اصطلاح SSL رایج است.
کاربردها و مزایای گواهی SSL:
- رمزگذاری دادهها: گواهی SSL دادههای منتقل شده بین سرور و مرورگر را رمزگذاری میکند، بنابراین اطلاعات حساس مانند شمارههای کارت اعتباری، رمزهای عبور و اطلاعات شخصی محافظت میشوند.
- تأیید هویت سرور: گواهی SSL از طریق سازمانهای صادرکننده معتبر (مانند Symantec، Comodo، Let’s Encrypt) صادر میشود. این گواهیها تأیید میکنند که سرور واقعاً متعلق به شرکت یا فردی است که ادعا میکند.
- یکپارچگی دادهها: گواهی SSL اطمینان میدهد که دادههای منتقل شده بین سرور و مرورگر دستنخورده باقی میمانند و توسط هیچکسی در مسیر تغییر نمیکنند.
- افزایش اعتماد کاربران: نمایش آیکون قفل در نوار آدرس مرورگر و استفاده از پروتکل HTTPS به جای HTTP باعث میشود کاربران به امنیت سایت اعتماد کنند.
معمولاً از تجارت الکترونیکی یا خدمات مالی آنلاین انتظار می رود که این پروتکل را داشته باشند زیرا اطلاعات حساس مانند جزئیات کارتهای اعتباری را ذخیره می کنند.
با این حال، گواهینامه SSL برای محافظت از اطلاعات محرمانه کاربران مانند اعتبار ورود به سیستم، شماره ها، کارت های شناسایی و غیره برای همه سایت ها اجباری است.
خوشبختانه، شما به راحتی می توانید از ارائه دهنده هایی مانند COMODO SSL و Let’s Encrypt گواهینامه SSL دریافت کنید که در آموزش نصب ما استفاده خواهد شد.
مواردی که در این آموزش مرور خواهد شد :
- نصب آپاچی – Apache به صورت دستی
- نحوه نصب گواهی SSL با Let’s Encrypt
- نصب Certbot
- تمدید خودکار گواهی SSL
- نحوه نصب گواهی SSL با Comodo
نصب آپاچی – Apache به صورت دستی
قبل از نصب SSL ، مطمئن شوید که Apache ( نرم افزار وب سرور ) از قبل روی CentOS شما نصب شده است.
هنگام دسترسی به سرور از طریق SSH می توانید به راحتی این را با تایپ httpd -v تست کنید. در صورت نصب Apache ، نتیجه ای مشابه نتیجه زیر مشاهده خواهید کرد.
خوشبختانه در آذردیتا ، کاربران می توانند آپاچی را از قبل روی سرورهای خود نصب کنند یا اینکه آن را به صورت دستی نصب کنند.
با وارد کردن این دستور در ترمینال، در CentOS 7 می توان Apache را از طریق مخازن نرم افزار نصب کرد :
sudo yum install httpd
اکنون برای شروع استفاده از Apache ، تایپ کنید :
sudo systemctl start httpd
اگر می خواهید Apache به طور خودکار در هنگام راه اندازی شروع شود، آن را با استفاده از دستور زیر فعال نمایید :
sudo systemctl enable httpd
نحوه نصب گواهی SSL با Let’s Encrypt
Let’s Encrypt یک گواهینامه SSL رایگان ارائه می دهد. بیایید نگاهی به نحوه نصب آن بر روی سرور خود بیاندازیم.
توصیه می کنیم ابتدا سیستم را بررسی کنید تا مطمئن شوید که به روز شده است.
yum -y update
در مرحله بعدی، برای پیکربندی Let’s Encrypt به mod_ssl نیاز خواهید داشت.
yum -y install mod_ssl
اکنون، با ایجاد یک پوشه روت برای وب سایت، Apache را پیکربندی کنید.
mkdir /var/www/azardata.net
در این مرحله یک فایل پیکربندی مورد نیاز است. می توانید آن را با nano ایجاد کنید و خطوط زیر را وارد کنید :
nano /etc/httpd/conf.d/azardata.net.conf
در nano این کد را وارد کنید :
<VirtualHost *:80> ServerAdmin admin@test.com DocumentRoot "/var/www/azardata.net" ServerName azardata.net ServerAlias www.azardata.net.com ErrorLog "/var/log/httpd/test.error_log" CustomLog "/var/log/httpd/test.access_log" common </VirtualHost>
بجای پوشه ی /var/www/azardata.net از یوزر اپاچی خود استفاده کنید تا بتواند پوشه را تشخیص دهد.
chown -R apache:apache /var/www/azardata.net
نصب Certbot
قبل از نصب certbot ، مطمئن شوید که مخزن EPEL را با وارد کردن این دستور فعال کرده اید :
yum -y install epel-release
قدم بعدی نصب yum-utils است :
yum -y install yum-utils
فقط در این صورت است که می توانید certbot را برای Apache نصب کنید
yum -y install certbot-apache
پس از نصب certbot ، آن را با دستور زیر اجرا کنید :
certbot
درخواستی وجود دارد که از شما اسامی که می خواهید https را در آن فعال کنید پرسیده می شود :
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? ------------------------------------------------------------------------------- ۱: azardata.net ۲: www.azardata.net ------------------------------------------------------------------------------- Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
فقط enter را فشار دهید تا هر دو azardata.net و www.azardata.net به https هدایت شوند.
پس از فشردن اینتر یک پیام دیگر نشان داده می شود :
Choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- ۱: No redirect – Make no further changes to the web server configuration. ۲: 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):
شماره ۲ را انتخاب کنید تا هر دو نام وب سایت خود را به https هدایت کنید.
You should see the output below if the process is done correctly ------------------------------------------------------------------------------- Congratulations! You have successfully enabled https://azardata.net and https://www.azardata.net You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=azardata.net https://www.ssllabs.com/ssltest/analyze.html?d=www.azardata.net -------------------------------------------------------------------------------
تمدید خودکار گواهی SSL
یک نکته خوب در مورد استفاده از Let’s Encrypt این است که می توانید تمدید خودکار گواهی را تنظیم کنید.
برای تنظیم تمدید خودکار، این دستور زیر را وارد کنید :
export EDITOR=/bin/nano
این دستور nano را به عنوان ویرایشگر پیش فرض تنظیم می کند و اکنون می تواند crontab را ویرایش کند :
crontab -e
در واقع، Let’s Encrypt پیشنهاد می کند که cronjob جدید به صورت خودکار دو بار در روز اجرا شود. برای انجام این کار، این دستور را پیست کنید و crontab را ذخیره کنید :
* */۱۲ * * * /usr/bin/certbot renew >/dev/null 2>&1
نحوه نصب گواهی SSL با Comodo
COMODO SSL ارائه دهنده گواهی SSL پولی است. با استفاده از آن، کاربران می توانند ترافیک سرور خود را رمزگذاری کنند. در اینجا نحوه نصب آن در CentOS 7 آمده است.
فایل ( ComodoRSACA.crt ) و گواهینامه اصلی ( domain_name.crt ) را بارگیری کرده و در فهرست سرور کپی کنید. این گواهی و پرونده های اصلی شما را ذخیره می کند.
فایل پیکربندی Apache را پیدا کنید. معمولاً نام پرونده httpd.conf یا apache2.conf است. مکان های معمول فایل یا / etc / httpd / یا / etc / apache2 / است. اگر نمی توانید آن را پیدا کنید، گزینه جستجو با استفاده از grep ، با تایپ دستور زیر است :
grep -i -r "SSLCertificateFile" /etc/httpd/
حال، اگر می خواهید SSL را بر روی سرور خود فعال کنید، با جایگذاری این خط زیر در آن، آن را با <VirtualHost> خود پیکربندی کنید :
<VirtualHost 31.220.62.130> DocumentRoot /var/www/azardata.net ServerName www.azardata.net SSLEngine on SSLCertificateFile /var/www/azardata.net SSLCertificateKeyFile /var/www/your_private.key SSLCertificateChainFile /var/www/ComodoCA.crt </VirtualHost>
- ۳۱.۲۲۰.۶۲.۱۳۰ : این را به آدرس IP سرور خود تغییر دهید.
- SSLCertificateFile باید به پرونده گواهی COMODO شما تغییر کند (به عنوان مثال : domain_name.crt)
- SSLCertificateKeyFile : هنگام ایجاد CSR ، فایل کلید تولید شده است ( درخواست امضای گواهی )
- SSLCertificateChainFile پرونده گواهی میانی COMODO است ( ComodoRSACA.crt )
قبل از شروع مجدد، مهم است که فایل پیکربندی Apache خود را بررسی کنید. اگر خطای نحوی وجود داشته باشد، ممکن است Apache اصلاً شروع نشود. برای اطمینان از اینکه همه چیز خوب کار می کند می توانید این دستور را تایپ کنید :
apachectl configtest
بعد از بررسی همه چیز، Apache را با پشتیبانی SSL دوباره راه اندازی کنید :
apachectl stop
و سپس :
apachectl start
در صورتی که Apache با پشتیبانی SSL شروع نمی شود، به جای آن از ” apachectl startssl ” استفاده کنید.
عالی
عالی
عالی بود