آرٽيڪل ڊاريڪٽري
Let's Encrypt لاءِ ڪيئن لاڳو ڪجي؟
اچو ته انڪريپٽ SSL سرٽيفڪيٽ اصول ۽ تنصيب سبق
SSL ڇا آهي؟ چن ويليانگ پنهنجي پوئين مضمون ۾ ان تي بحث ڪيو ، " HTTP ۽ HTTPS ۾ ڇا فرق آهي؟ SSL انڪرپشن عمل جي تفصيلي وضاحت ."
اي-ڪامرس ويب سائيٽن کان علاوه ، جن کي اعليٰ سطحي انڪرپٽ ٿيل SSL سرٽيفڪيٽ خريد ڪرڻ گهرجن، نوان ميڊيا پروفيشنل جيڪي پنهنجي WeChat سرڪاري اڪائونٽس کي فروغ ڏيڻ لاءِ ويب سائيٽون استعمال ڪندا آهن، اهي اصل ۾ مفت انڪرپٽ ٿيل SSL سرٽيفڪيٽ انسٽال ڪري سگهن ٿا. اهو SEO ۾ مدد ڪري سگهي ٿو ۽ سرچ انجن ۾ ويب سائيٽ جي ڪي ورڊ رينڪنگ کي بهتر بڻائي سگهي ٿو.

اچو ته انڪرپٽ جو پنهنجو ڪم فلو آهي ( https://certbot.eff.org/ ). لينڪس استعمال ڪندڙ انهي ڪم فلو جو حوالو ڏئي سگهن ٿا ۽ هن سبق تي عمل ڪري سگهن ٿا.
ڊائون لوڊ ڪريو certbot-auto tool پهرين، پوءِ هلايو ٽول جي انسٽاليشن انحصار.
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
SSL سرٽيفڪيٽ ٺاھيو
اڳيون، چن ويليانگ جي بلاگ ڊومين نالي کي مثال طور وٺي، مھرباني ڪري ان کي پنھنجي ضرورتن مطابق تبديل ڪريو ۽ SSH ذريعي ھيٺ ڏنل حڪم ھلايو.
حڪم ۾ ترميم ڪرڻ جي پڪ ڪريو:
- ٽپال جو ٽپال
- سرور جو رستو
- ويب سائيٽ ڊومين جو نالو
اڪيلو ڊومين واحد ڊاريڪٽري، هڪ سرٽيفڪيٽ ٺاهي:
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com
ملٽي ڊومين سنگل ڊاريڪٽري، هڪ سرٽيفڪيٽ ٺاهي: (يعني، گهڻن ڊومين جا نالا، واحد ڊاريڪٽري، ساڳئي سرٽيفڪيٽ استعمال ڪريو)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com
ٺاهيل SSL سرٽيفڪيٽ ۾ محفوظ ڪيو ويندو:/etc/letsencrypt/live/www.chenweiliang.com/ مواد جي تحت.
گھڻن ڊومين جا نالا ۽ گھڻا ڊائريڪٽريون، ھڪڙو سرٽيفڪيٽ ٺاھيو: (اھو آھي، گھڻن ڊومين جا نالا، گھڻن ڊائريڪٽرن، ھڪڙي سرٽيفڪيٽ استعمال ڪريو)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com -w /home/eloha/public_html/site/etufo.org -d www.etufo.org -d img.etufo.org
اچو ته انڪريپٽ سرٽيفڪيٽ ڪاميابيءَ سان انسٽال ٿيڻ کان پوءِ، SSH ۾ ھيٺ ڏنل پيغام ظاهر ٿيندو:
اهم ياداشت:
- مبارڪون! توهان جو سرٽيفڪيٽ ۽ چيain تي محفوظ ڪيو ويو آهي:
/etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem
توهان جي اهم فائل محفوظ ڪئي وئي آهي:
/etc/letsencrypt/live/www.chenweiliang.com/privkey.pem
توهان جو سرٽيفڪيشن 2018-02-26 تي ختم ٿي ويندو. هڪ نئون يا ٽائيڪ حاصل ڪرڻ لاءِ
مستقبل ۾ هن سرٽيفڪيٽ جو نسخو، بس هلايو certbot-auto
ٻيهر. توهان جي سرٽيفڪيٽن جي *سڀني* کي غير مداخلت سان تجديد ڪرڻ لاءِ، هلايو
"certbot-خودڪار تجديد"
- جيڪڏهن توهان سرٽيبٽ پسند ڪريو ٿا، مهرباني ڪري اسان جي ڪم جي سهڪار تي غور ڪيو.
ISRG کي عطيو ڏيڻ / اچو ته انڪرپٽ ڪريون: https://letsencrypt.org/donate
اي ايف ايف کي عطيو ڏيڻ: https://eff.org/donate-le
SSL سرٽيفڪيٽ تجديد
سرٽيفڪيٽ جي تجديد پڻ تمام آسان آهي، خودڪار تجديد لاءِ ڪرونٽيب استعمال ڪندي . ڪجھ ڊيبين ورجن لاءِ جن ۾ ڪرونٽيب انسٽال ٿيل نه آهي، توهان پهريان ان کي دستي طور تي انسٽال ڪري سگهو ٿا.
apt-get install cron
nginx ۽ apache لاءِ هيٺيون حڪم /etc/crontab فائل ۾ داخل ڪيا ويا آهن، مطلب ته اهي هر 10 ڏينهن ۾ تجديد ڪيا ويندا آهن، ۽ 90 ڏينهن جي صحيح مدت ڪافي آهي.
Nginx crontab فائل، مھرباني ڪري شامل ڪريو:
0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
Apache crontab فائل، مھرباني ڪري شامل ڪريو:
0 3 */10 * * /root/certbot-auto renew --renew-hook "service httpd restart"
SSL سرٽيفڪيٽ Apache configuration
هاڻي، اسان کي اپاپي جي ترتيب ۾ تبديليون ڪرڻ جي ضرورت آهي.
طريقه:
- جيڪڏهن توهان استعمال ڪريوCWP ڪنٽرول پينل, ۾ شامل ڪريو ڊومين جو نالو چيڪ ڪريو خودڪار طور تي ھڪڙو ايس ايس ايل سرٽيفڪيٽ ٺاھيو، اھو خودڪار طور تي ايس ايس ايل سرٽيفڪيٽ اپاچي لاء ترتيب ڏيندو.
- جيڪڏهن توهان هيٺ ڏنل قدمن مان وڌيڪ ڪريو ٿا، هڪ غلطي ٿي سگهي ٿي Apache کي ٻيهر شروع ڪرڻ کان پوء.
- جيڪڏهن ڪو نقص آهي، ان ترتيب کي حذف ڪريو جيڪو توهان دستي طور شامل ڪيو آهي.
ايڊٽ ڪريو httpd.conf فائل ▼
/usr/local/apache/conf/httpd.conf
ڳولهيو ▼
Listen 443
- (اڳيون تبصرو نمبر هٽايو #)
يا شامل ڪريو ٻڌڻ وارو پورٽ 443 ▼
Listen 443
SSH چيڪ ڪريو اپاچي ٻڌڻ وارو پورٽ ▼
grep ^Listen /usr/local/apache/conf/httpd.conf
ڳولهيو ▼
mod_ssl
- (اڳيون تبصرو نمبر هٽايو #)
يا شامل ڪريو ▼
LoadModule ssl_module modules/mod_ssl.so
ڳولهيو ▼
httpd-ssl
- (اڳيون تبصرو نمبر هٽايو #)
پوء، SSH ھيٺ ڏنل حڪم تي عمل ڪريو (توهان جي پنھنجي رستي کي تبديل ڪرڻ لاء نوٽ ڪريو):
at >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLHonorCipherOrder on SSLProtocol all -SSLv2 -SSLv3 SSLProxyProtocol all -SSLv2 -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex "file:/usr/local/apache/logs/ssl_mutex" EOF
اڳيون، توهان جي ٺاهيل ويب سائيٽ لاءِ اپاچي ترتيب جي آخر ۾، </VirtualHost> جي تحت.
SSL سيڪشن جي ٺاھ جوڙ واري فائل شامل ڪريو (تبصرو کي هٽائڻ لاء نوٽ ڪريو، ۽ پنھنجو رستو تبديل ڪريو):
<VirtualHost *:443> DocumentRoot /home/admin/web/chenweiliang.com/public_html //网站目录 ServerName www.chenweiliang.com:443 //域名 ServerAdmin [email protected] //邮箱 ErrorLog "/var/log/www.chenweiliang.com-error_log" //错误日志 CustomLog "/var/log/www.chenweiliang.com-access_log" common //访问日志 SSLEngine on SSLCertificateFile /etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem //之前生成的证书 SSLCertificateKeyFile /etc/letsencrypt/live/www.chenweiliang.com/privkey.pem //之前生成的密钥 <Directory "/home/admin/web/chenweiliang.com/public_html"> //网站目录 SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All suPHP_UserGroup eloha eloha //用户组(有些服务器配置需要,有些可能不需要,出错请删除此行) Order allow,deny Allow from all DirectoryIndex index.html index.phps </Directory> </VirtualHost>
آخرڪار ان تي Apache ٻيهر شروع ڪريو:
service httpd restart
Apache force HTTP کي HTTPS ڏانهن ريڊائريڪٽ ڪريو
- ڪيتريون ئي ويب درخواستون هميشه صرف SSL سان هلائي سگهن ٿيون.
- اسان کي پڪ ڪرڻ جي ضرورت آهي ته هر ڀيري اسان SSL استعمال ڪندا آهيون، ويب سائيٽ کي SSL ذريعي پهچڻ گهرجي.
- جيڪڏهن ڪو به صارف غير SSL URL سان ويب سائيٽ تائين رسائي جي ڪوشش ڪري ٿو، ته هن کي SSL ويب سائيٽ ڏانهن ريڊائريڪٽ ڪيو وڃي.
- Apache mod_rewrite module استعمال ڪندي SSL URL ڏانھن ريڊائريڪٽ ڪريو.
- جيئن ته LAMP هڪ-ڪلڪ انسٽاليشن پيڪيج استعمال ڪرڻ، SSL سرٽيفڪيٽ جي خودڪار تنصيب ۽ HTTPS ڏانهن جبري ريڊائريشن، HTTPS ڏانهن ريڊائريشنزور ۾، توهان کي HTTPS ريڊائريڪٽ شامل ڪرڻ جي ضرورت ناهي.
ريٽائرمينٽ ضابطو شامل ڪريو
- Apache جي ڪنفيگريشن فائل ۾، ويب سائيٽ جي ورچوئل ميزبان کي ايڊٽ ڪريو ۽ ھيٺيون سيٽنگون شامل ڪريو.
- توھان پڻ ساڳيو سيٽنگون شامل ڪري سگھو ٿا دستاويز جي روٽ ۾ توھان جي ويب سائيٽ تي توھان جي .htaccess فائل ۾.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]جيڪڏهن توهان صرف HTTPS ڏانهن ريڊائريڪٽ ڪرڻ لاءِ هڪ خاص URL بيان ڪرڻ چاهيو ٿا:
RewriteEngine On RewriteRule ^message$ https://www.etufo.org/message [R=301,L]
- جيڪڏھن ڪو پھچڻ جي ڪوشش ڪري پيغام , صفحو ٽپو ڏيندو https تي، ۽ صارف صرف SSL سان URL تائين رسائي ڪري سگھن ٿا.
.htaccess فائل کي اثر انداز ڪرڻ لاء Apache کي ٻيهر شروع ڪريو:
service httpd restart
احتياط
- مھرباني ڪري مٿي ڏنل اي ميل پتي کي پنھنجي اي ميل پتي ۾ تبديل ڪريو.
- مهرباني ڪري مٿي ڏنل ويب سائيٽ ڊومين جو نالو تبديل ڪرڻ لاءِ ياد رکو پنهنجي ويب سائيٽ ڊومين جي نالي ۾.
ريڊائريڪٽ قاعدي جي جڳھ جو مسئلو
جڏهن ريڊائريڪٽ رولز کي سيوڊو اسٽيٽڪ رولز جي تحت رکيو ويندو آهي، ته توهان کي اڪثر اهو مسئلو درپيش ايندو ته HTTP پوري سائيٽ کي HTTPS ڏانهن ريڊائريڪٽ نٿو ڪري سگهي.
شروعات ۾ اسان نقل ڪيو ريڊائريڪٽ ڪوڊ کي .htaccess ۾ ۽ اهو هيٺين صورتن ۾ ظاهر ٿيندو ▼
![ريڊائريڪشن قاعدو [L] مٿي ڏنل آهي. ريڊائريڪشن قاعدو [L] مٿي ڏنل آهي.](https://img.chenweiliang.com/2018/03/https-rule-1.png)
- [L] اشارو ڪري ٿو ته موجوده قاعدو آخري قاعدو آهي، هيٺ ڏنل ٻيهر لکڻ جي قاعدن جو تجزيو ڪرڻ بند ڪريو.
- تنهن ڪري جڏهن ريڊائريڪٽ ڪيل مضمون جي صفحي تائين پهچندي، [L] هيٺ ڏنل قاعدن کي روڪي ٿو، تنهنڪري ريڊائريڪشن ضابطا ڪم نٿا ڪن.
جڏهن HTTP هوم پيج تائين رسائي حاصل ڪندا آهيون، اسان ريڊائريڪشن قاعدن تي عمل ڪرڻ لاءِ URL ري رائٽنگ قاعدن کي نظرانداز ڪندي، هڪ URL ريڊائريڪٽ کي ٽرگر ڪرڻ چاهيون ٿا، ته جيئن پوري سائيٽ کي HTTP کان HTTPS ڏانهن ريڊائريڪٽ ڪري سگهجي.
HTTPS ريڊائريڪٽ قاعدن کي [L] قاعدن کان هيٺ نه رکو ؛ انهن کي [L] قاعدن کان مٿي رکو. ▼
![pseudo-static SSL ريڊائريڪشن قاعدا [L] هيٺ ڏنل آهن. pseudo-static SSL ريڊائريڪشن قاعدا [L] هيٺ ڏنل آهن.](https://img.chenweiliang.com/2018/03/pseudo-static-ssl-jump.png)
توسيع پڙهڻ:
- http ۽ https جي وچ ۾ ڇا فرق آهي؟ SSL انڪرپشن جي عمل جي تفصيلي وضاحت
- مون کي ڇا ڪرڻ گهرجي جيڪڏهن مون کي CWP ڪنٽرول پينل ۾ Let's Encrypt SSL سرٽيفڪيٽ انسٽال ڪرڻ کان پوءِ غلطي 500 ملي؟
- خود بخود ٻئي سطح جي ڊومين جي نالي تي وڃو بغير www جي مٿين سطح جي ڊومين جو نالو: روٽ ڊومين جو نالو 301 ريڊائريڪٽس www.
اميد آهي ته، چن ويليانگ جي بلاگ ( https://www.chenweiliang.com/ ) تي شيئر ڪيل مضمون "Let's Encrypt لاءِ ڪيئن اپلائي ڪجي؟ Let's Encrypt Free SSL Certificates جا اصول ۽ انسٽاليشن ٽيوٽوريل" توهان لاءِ مددگار ثابت ٿيندو.
هن مضمون جي لنڪ شيئر ڪرڻ لاءِ آزاد محسوس ڪريو: https://www.chenweiliang.com/cwl-512.html
