
SSL (مخفف Secure Sockets Layer) یک اتصال امن بین مرورگرهای اینترنت و وبسایتها (یا وبسرور) فراهم میکند و به شما امکان میدهد دادههای خصوصی را آنلاین و بهصورت کاملاً ایمن منتقل نمایید. بدین منظور باید گواهینامه SSL را در وبسرور، وبسایت، سرور ایمیل، سرور dns و ... نصب کنید.
در مواردی همچون پرداخت از طریق کارتهای اعتباری، SSL اطلاعات حساس و مهم (از نظر ایمنی) را بهصورت ایمن انتقال میدهد. بهطور پیشفرض دادهها بین مرورگرها و سرورهای وب بهصورت آشکار ارسال میشوند و این منجر به دستیابی اطلاعات توسط مهاجمان و هکرها میشود. درحالیکه اگر از SSL استفاده شود، دادهها بین مرورگرها و سرورهای وب بهصورت ایمن و با فرمت رمزگذاری شده بر اساس رمزگذاری مبتنی بر گواهی 128 بیتی، 512 بیتی و 1024 بیتی انتقال یافته و هیچ کس قادر به خواندن آنها نخواهد بود.
ابزارهای بسیاری در زمینه ارائه مکانیزم امنیتی SSL در بازار وجود دارد. از جمله آنها ابزارهای Verisign ،symantec ،geotrust ،Comodo ،thawte Comodo و RapidSSL هستند. در اینجا میخواهیم نحوه تولید و نصب گواهی خود امضا (معتبر) SSL را توسط ابزار apache در محیط لینوکس توضیح دهیم.
این مطلب نیز ممکن است برای شما مفید باشد: نصب آپاچی tomcat 8 بر روی centos 7
نصب و فعال سازی ماژول SSL
دقت کنید که قبل از فعال کردن ماژول SSL، حتماً باید LAMP Setup را نصب کرده باشید. برای نصب و فعال سازی ماژولهای SSL میتوانید از دستورات زیر استفاده کنید.
به طور پیش فرض ماژول mod_ssl در سیستم Ubuntu/Debian/LinuxMint نصب شده است و تنها باید با اجرای دستور زیر آن را فعال نمایید.
$ sudo a2enmod ssl
در سیستمهای CentOS/RHEL/Fedora، فقط ماژول mod_ssl را نصب کنید. پس از آن به صورت خودکار فعال خواهد شد.
# For RHEL/CentOS/Fedora 21 and older systems #
$ yum install mod_ssl openssl
# For Fedora 22 and later systems #
$ dnf install mod_ssl openssl
پس از فعال کردن ماژول SSL، باید وبسرور خود را مجدداً راهاندازی نمایید تا تغییرات اعمال شوند.
# For RHEL/CentOS/Fedora sysvinit systems #
$ sudo service httpd restart
# For RHEL/CentOS 7 & Fedora systems #
$ sudo systemctl restart httpd.service
# For Ubuntu/Debian/LinuxMint sysvinit systems #
$ sudo service apache2 restart
# For Ubuntu/Debian/LinuxMint systemd systems #
$ sudo systemctl restart apache2.service
ایجاد یک گواهی SSL معتبر
یک دایرکتوری ssl برای قرار دادن فایلهای گواهینامه در دایرکتوری Apache یا httpd ایجاد کنید.
# Create SSL directory Ubuntu/Debian/LinuxMint system #
$ sudo mkdir /etc/apache2/ssl
# Create SSL directory RHEL/Fedora/CentOS system #
$ sudo mkdir /etc/httpd/ssl
در سیستمهای اوبونتو، دبیان و LinuxMint کلید و گواهینامه را میتوانید بهصورت زیر ایجاد نمایید.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Generating a 2048 bit RSA private key
.......................................................................................+++
.............................................................................................................................................+++
writing new private key to '/etc/apache2/ssl/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:Tamil Nadu
Locality Name (eg, city) []:Chennai
Organization Name (eg, company) [Internet Widgits Pty Ltd]:2daygeek
Organizational Unit Name (eg, section) []:Linux Geek
Common Name (e.g. server FQDN or YOUR name) []:2daygeek.com
Email Address []:admin@2daygeek.com
در سیستمهای RHEL/Fedora/CentOS کلید و گواهی نامه را میتوانید بهصورت زیر تولید نمایید.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Generating a 2048 bit RSA private key
.......................................................................................+++
.............................................................................................................................................+++
writing new private key to '/etc/httpd/ssl/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:Tamil Nadu
Locality Name (eg, city) []:Chennai
Organization Name (eg, company) [Internet Widgits Pty Ltd]:2daygeek
Organizational Unit Name (eg, section) []:Linux Geek
Common Name (e.g. server FQDN or YOUR name) []:2daygeek.com
Email Address []:admin@2daygeek.com
پیکربندی Apache در جهت استفاده از SSL
تا اینجا گواهینامه و کلید آماده است، اکنون زمان آن است که با قرار دادن فایلها در دایرکتوری میزبان مجازی، تنظیمات Apache را در جهت استفاده از SSL تغییر دهید.
فایل default-ssl.conf را بهصورت زیر در سیستمهای Ubuntu/ Debian/ LinuxMint باز کرده و خطوط زیر را بر اساس موقعیت گواهی نامه خود اصلاح نمایید.
$ sudo nano /etc/apache2/sites-available/default-ssl.conf
ServerAdmin admin@example.com
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
فایل ssl.conf را بهصورت زیر در سیستمهای RHEL/ Fedora/ CentOS باز کرده و خطوط زیر را بر اساس موقعیت گواهی نامه خود اصلاح نمایید.
$ sudo nano /etc/httpd/conf.d/ssl.conf
ServerAdmin admin@example.com
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key
میزبان مجازی SSL را برای سیستمهای Ubuntu/ Debian/ LinuxMint بهصورت زیر فعال کنید.
$ sudo a2ensite default-ssl.conf
پس از پیکربندی SSL، باید وبسرور خود را مجدداً راهاندازی کنید تا تغییرات اعمال شوند.
# For RHEL/CentOS/Fedora sysvinit systems #
$ sudo service httpd restart
# For RHEL/CentOS 7 & Fedora systems #
$ sudo systemctl restart httpd.service
# For Ubuntu/Debian/LinuxMint sysvinit systems #
$ sudo service apache2 restart
# For Ubuntu/Debian/LinuxMint systemd systems #
$ sudo systemctl restart apache2.service
ارزیابی نسخه SSL و TLS
برای بررسی نسخه SSL & TLS خود از دستورات زیر استفاده نمایید.
# Testing your SSL & TLS Version #
$ openssl s_client -connect localhost:443
CONNECTED(00000003)
depth=0 C = IN, ST = Tamil Nadu, L = Chennai, O = 2daygeek, OU = Linux Geek, CN = daygeek, emailAddress = admin@2daygeek.com
verify error:num=18:self signed certificate
verify return:1
depth=0 C = IN, ST = Tamil Nadu, L = Chennai, O = 2daygeek, OU = Linux Geek, CN = daygeek, emailAddress = admin@2daygeek.com
verify return:1
---
Certificate chain
0 s:/C=IN/ST=Tamil Nadu/L=Chennai/O=2daygeek/OU=Linux Geek/CN=daygeek/emailAddress=admin@2daygeek.com
i:/C=IN/ST=Tamil Nadu/L=Chennai/O=2daygeek/OU=Linux Geek/CN=daygeek/emailAddress=admin@2daygeek.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIID9zCCAt+gAwIBAgIJAOB4xC8Ph0gFMA0GCSqGSIb3DQEBCwUAMIGRMQswCQYD
.
.
/MSw9ojwo+NY3fpZff48/O3a8/pdVXkeoIZ7u9bsFmVh5souQNH0Q5lGGnQ1UTyL
4PUmPzk2PHb7pPw=
-----END CERTIFICATE-----
subject=/C=IN/ST=Tamil Nadu/L=Chennai/O=2daygeek/OU=Linux Geek/CN=daygeek/emailAddress=admin@2daygeek.com
issuer=/C=IN/ST=Tamil Nadu/L=Chennai/O=2daygeek/OU=Linux Geek/CN=daygeek/emailAddress=admin@2daygeek.com
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 1694 bytes and written 441 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: 3C21A06CB9553B0A647DAB07346B3ED827D3C6A370A366A800C86C432C183CB6
Session-ID-ctx:
Master-Key: 0D22759036E15AB05047544114243C2F70350867DDE3A85C968928AAB2B62EC4D2B959F4081341F49226BE15BBC9D585
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - d9 ad 1e 47 e8 60 04 5f-c2 5b a1 63 29 80 a1 b9 ...G.`._.[.c)...
0010 - 0f e7 0c 91 0d 18 2e b1-2c 13 99 b4 10 0d 9a 23 ........,......#
0020 - f0 a7 53 c1 82 1c 7c ed-6a 22 1b f4 b9 b9 db b4 ..S...|.j"......
0030 - e1 ad 8a 0a 8f 19 32 83-59 f8 ce 5c dd 11 e1 f6 ......2.Y..\....
0040 - e9 60 a0 bf 90 ee 9d 88-4b 12 33 d2 be b2 1c 52 .`......K.3....R
0050 - df 1d 78 32 bd bf 4f 04-ba 75 57 9d e2 25 0f bf ..x2..O..uW..%..
0060 - cd 81 bb 50 82 79 12 86-72 0a 78 2c 6c eb 8d a3 ...P.y..r.x,l...
0070 - be 37 4b 0f f0 0d 9b 75-50 95 c9 e0 8c 8d d0 65 .7K....uP......e
0080 - 53 0f e4 d8 94 ea 56 27-90 4b ab eb 45 82 85 1c S.....V'.K..E...
0090 - 99 db 46 5c 9e 76 6e 82-4d 4b cc 46 7e 1e f2 48 ..F\.vn.MK.F~..H
00a0 - b8 83 96 47 bc 94 1d fd-d3 51 de cf c1 5f 8e d3 ...G.....Q..._..
Start Time: 1451100191
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
closed
ارزیابی راهاندازی
اکنون که SSL را با استفاده از Apache با موفقیت نصب، فعال و تنظیم نمودید، وقت آن است که با رفتن به یکی از آدرسهای https://localhost/ یا https://your-server-ip- یا https://127.0.0.1 عملکرد آن را نیز بررسی نمایید.

چنانچه با مرورگر Firefox وارد شدهاید، گزینه I Understand the Risks را باز کرده، گزینه Add Exception و سپس گزینه Confirm Security Exception را کلیک کنید.
اگر با مرورگر Chrome وارد شدهاید، روی گزینه Proceed کلیک کنید.

منبع:
دستورmkdir ایجاد دایرکتوری از طریق خط فرمان لینوکس
نصب OpenCV در CentOS
شبیه سازی دستورات لینوکس بدون ایجاد تغییر در سیستم
نحوه بررسی پورت های در حال شنود در لینوکس (پورت های مشغول)
0 دیدگاه
نوشتن دیدگاه