TLS 1.3 نسخهای از پروتکل TLS یا به اختصار Transport Layer Security میباشد، که در سال 2018 به عنوان استاندارد پیشنهادی در RFC 8446 منتشر شد. TLS1.3 ادامه دهنده راه TLS1.2 میباشد با این تفاوت که ویژگیهای ناامن و منسوخ نسخه قدیمی خود را بهبود داده است و شامل SHA1, MD5, RC4, DES, 3DES, AES-CBC. می گردد.
در زیر راهنمای فعال سازی TLS1.3 را با استافاده از وب سرور ngnix در CentOS 8 نشان دادهایم.
ملزومات:
- وب سرور Nginix 1.13.0 یا بالاتر
- OpenSSL ورژن 1.1.1 یا بالاتر
- یک سرویس کلاد مانند DigitalOcean که CentOs 8 روی آن نصب شده باشد.
- یک دامنه معتبر و یک A/AAAA/CNAME DNS که به صورت صحیح پیکر بندی شده باشد.
- یک گواهی معتبر LTS
خب قبل از آن که شروع کنیم بهتر است نسخه CentOS خود را بررسی کنیم برای این منظور:
1 |
<strong> </strong>cat /etc/centos-release |
1 |
# CentOS Linux release 8.1.1911 (Core) |
حالا یک یوزر جداگانه از root با استفاده از دستورsudo اضافه میکنیم:
1 |
useradd -c "Saman Yn" samanyn && passwd samanyn |
1 |
usermod -aG wheel samanyn |
1 |
su - samanyn |
به یاد داشته باشید که samanyn نام کاربری یا یوزر است و آن را با نام کاربری مورد نظر خود جابجا نمایید و یک پسورد و گذرواژه قدرتمند انتخاب نمایید. (اگر از قوانین CentOS در زمینه گذرواژه تبعیت کنید که بسیار بهتر است)
حالا منطقه زمانی سیستم را تنظیم مینماییم.
1 2 3 |
timedatectl list-timezones sudo timedatectl set-timezone 'Region/City' |
و از بروز بودن سیستم اطمینان حاصل میکنیم.
1 |
sudo dnf update |
میتوانید پکیجهای مورد نیاز را با دستور زیر نصب کنید.
1 |
sudo dnf install -y socat git wget unzip |
برای راحتی بیشتر میتوانید SELinux و فایروال را غیرفعال نمایید.
1 2 3 4 5 |
; sudo setenforce 0 ; sudo systemctl stop firewalld sudo systemctl disable firewalld |
نصب کلاینت acme.sh و دریافت گواهی TLS
توصیه میکنیم acme.sh را بعنوان کاربر root نصب نمایید یا با دستور sudo اقدام به تبدیل یوزر خود به یوزر root نمایید.
1 |
sudo su - root |
حالا acme.sh را نصب نمایید.
1 2 3 4 5 6 7 8 9 |
git clone https://github.com/acmesh-official/acme.sh cd acme.sh ./acme.sh --install --accountemail your_email@zagrio.com cd ~source ~/.bashrc |
ورژن نسخه نصب شده را کنترل نمایید.
1 2 3 4 5 |
acme.sh --version https://github.com/acmesh-official/acme.sh# V.2.86# |
گواهیهای RSA و ECDSA را برای دامنه خود دریافت نمایید.
1 2 3 4 5 6 7 |
RSA# acme.sh --issue --standalone -d zagrio.com --keylength 2048 ECC/ECDSA# acme.sh --issue --standalone -d zagrio.com --keylength ec-256 |
به یاد داشته باشید که zagrio.com را با نام دامنه خود عوض نمایید.
برای گواهی خود یک دیرکتوری جدید بسازید.
1 2 3 |
mkdir -p /etc/letsencrypt/zagrio.com mkdir -p /etc/letsencrypt/zagrio.com _ecc |
گواهی را در دایرکتوری مورد نظر نصب و کپی نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<strong># RSA</strong> <strong>acme.sh --install-cert -d zagrio.com --cert-file </strong> <strong>/etc/letsencrypt/zagrio.com/cert.pem --key-file </strong> <strong>/etc/letsencrypt/zagrio.com/private.key --fullchain-</strong> <strong>file /etc/letsencrypt/zagrio.com/fullchain.pem </strong> <strong># ECC/ECDSA</strong> <strong>acme.sh --install-cert -d zagrio.com --ecc --cert-file </strong> <strong>/etc/letsencrypt/zagrio.com/cert.pem --key-file </strong> <strong>/etc/letsencrypt/zagrio.com/private.key --fullchain-</strong> <strong>file /etc/letsencrypt/zagrio.com/fullchain.pem </strong> |
بعد از اجرای کامند بالا، گواهی و کلیدهای ان در دایرکتوری زیر قرار خواهد گرفت:
-
1<strong>RSA:</strong> /etc/letsencrypt/zagrio.com
-
1<strong>ECC/ECDSA:</strong> /etc/letsencrypt/zagrio.com _ecc
حالا میتوانید به یوزر عادی خود بازگردید
1 |
exit |
نصب Nginix
Nginix پشتیبانی از TLS1.3 را در نسخه 1.13.0 خود اضافه کرد. و CentOS8 با نسخهای از Nginix و OpenSSL عرضه شده که توانایی پشتیبانی از TLS1.3 را دارد. پس شما نیازی به ساخت نسخهای سفارشی ندارید.
نصب Nginx
1 |
sudo dnf install -y nginx |
بررسی نسخه
1 2 3 |
nginx -v nginx version: nginx/1.14.1# |
بررسی نسخه OpenSSL
1 |
nginx -V |
1 |
# built with OpenSSL 1.1.1 FIPS 11 Sep 2018 (running with OpenSSL 1.1.1c FIPS 28 May 2019) |
شروع استفاده و فعال کردن Nginx
1 |
sudo systemctl start nginx.service |
1 |
sudo systemctl enable nginx.service |
پیکربندی Nginx
حالا که موفق به نصب Nginx شدیم وقت آن است که آن را برای استفاده از TLS1.3 پیکربندی نماییم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
این کامند را اجرا نمایید. sudo vim /etc/nginx/conf.d/zagrio.com.conf و فایل را با اطلاعات زیر پر نمایید. server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name zagrio.com; # RSA ssl_certificate /etc/letsencrypt/zagrio.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/zagrio.com/ zagrio.com.key; # ECDSA ssl_certificate /etc/letsencrypt/zagrio.com_ecc/fullchain.cer; ssl_certificate_key /etc/letsencrypt/zagrio.com_ecc/zagrio.com.key; ssl_protocols TLSv1.3 TLSv1.2; |
فایل را ذخیره کنید و خارج شوید.
به پارامتر جدید TLSv1.3 بخشنامه ssl_protocols توجه کنید. این پارامتر فقط برای فعال کردن TLS 1.3 در Nginx ضروری است.
حالا پیکربندی را بررسی کنید.
1 |
sudo nginx -t |
Nginxرا دوباره بارگذاری کنید
1 |
sudo systemctl reload nginx.service |
برای تایید TLS1.3میتوانید از ابزار توسعه دهدگان مرورگر یا SSL Lab استفاده نمایید. در تصایر زیر میتوانید Chrome security Lab را مشاهده نمایید.
تبریک میگویم شما به راحتی TLS1.3 را در Apache سنت او اس خود فعال نمودید. مانند HTTP/2 میتوان TLS1.3 را نیز یک تکنولوژی و پروتکل هیجان انگیز تلقی کرد که در سالها آینده بیشتر از آن بهره ببریم اما در نظر داشته باشید که نسخه آخر TLS1.3 در آگوست 2018 عرضه شده پس مطمئنا بهترین زمان برای پیکربندی و راه اندازی آن را انتخاب نمودید.
بدون دیدگاه