انڈروئد

سیکنڈوس 8 پر انکرپٹ کے ساتھ اینگینکس کو محفوظ کریں

سوا - غابة المعمورة تواجه خطر الاندثار

سوا - غابة المعمورة تواجه خطر الاندثار

فہرست کا خانہ:

Anonim

چلو انکرپٹ ایک آزاد ، خودکار اور اوپن سرٹیفکیٹ اتھارٹی ہے جو انٹرنیٹ سیکیورٹی ریسرچ گروپ (ISRG) کے ذریعہ تیار کیا گیا ہے جو مفت SSL سرٹیفکیٹ مہیا کرتا ہے۔

لیٹ انکرپٹ کے ذریعہ جاری کردہ سرٹیفکیٹ پر تمام بڑے براؤزرز پر بھروسہ کیا جاتا ہے اور جاری ہونے کی تاریخ سے 90 دن کے لئے موزوں ہوتا ہے۔

اس ٹیوٹوریل میں ، ہم ایک مرحلہ وار ہدایات فراہم کریں گے کہ سینٹوس 8 پر نائنیکس کو بطور ویب سرور کی حیثیت سے چلنے والے مفت لیٹ انکرپٹ ایس ایس ایل سرٹیفکیٹ کو کیسے انسٹال کیا جائے۔ ہم یہ بھی دکھائیں گے کہ SSL سرٹیفکیٹ کو استعمال کرنے اور HTTP / 2 کو فعال کرنے کے لئے Nginx کو کس طرح تشکیل دیں۔

شرطیں

اس سے پہلے کہ آپ آگے بڑھیں ، اس بات کو یقینی بنائیں کہ آپ نے درج ذیل شرائط کو پورا کرلیا ہے۔

  • آپ کا عوامی ڈومین کی طرف اشارہ کرنے والا ایک ڈومین نام ہے۔ ہم example.com ڈاٹ کام کا استعمال کریں گے۔ آپ نے اپنے سینٹوس سرور پر نجنیکس انسٹال کیا ہے۔ آپ کا فائر وال وال 80 اور 443 بندرگاہوں پر کنکشن قبول کرنے کے لئے تشکیل کیا گیا ہے۔

سرٹبوٹ انسٹال کرنا

سیرٹبوٹ ایک مفت کمانڈ لائن ٹول ہے جو آپ کے سرور پر ایچ ٹی پی پی ایس سے ایس ایس ایل سرٹیفکیٹ حاصل کرنے اور اسے خود بخود چالو کرنے کے ل Let's انکرپٹ ایس ایس ایل سرٹیفکیٹ کے حصول اور تجدید کے عمل کو آسان بناتا ہے۔

سیرٹبوٹ پیکیج معیاری CentOS 8 ذخیروں میں شامل نہیں ہے ، لیکن یہ فروش کی ویب سائٹ سے ڈاؤن لوڈ کیا جاسکتا ہے۔

تصدیق نامہ اسکرپٹ کو /usr/local/bin ڈائرکٹری میں ڈاؤن لوڈ کرنے کے لئے مندرجہ ذیل wget کمانڈ کو روٹ یا sudo صارف کے طور پر چلائیں۔

sudo wget -P /usr/local/bin

ایک بار ڈاؤن لوڈ مکمل ہونے کے بعد ، فائل کو قابل عمل بنائیں:

sudo chmod +x /usr/local/bin/certbot-auto

مضبوط ڈی ایچ (ڈیفی ہیلمین) گروپ تیار کرنا

ڈیفی – ہیلمین کیچ ایکسچینج (ڈی ایچ) غیر محفوظ مواصلات چینل پر کرپٹوگرافک چابیاں کا محفوظ طریقے سے تبادلہ کرنے کا ایک طریقہ ہے۔

درج ذیل کمانڈ کو ٹائپ کرکے 2048 بٹ DH پیرامیٹرز کا ایک نیا سیٹ تیار کریں:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

آئیے اینکرپٹ ایس ایس ایل سرٹیفکیٹ حاصل کرنا

ڈومین کے لئے ایس ایس ایل سرٹیفکیٹ حاصل کرنے کے ل we're ، ہم ویبروٹ پلگ ان کو استعمال کرنے جارہے ہیں جو domain ${webroot-path}/.well-known/acme-challenge ڈائرکٹری میں مطلوبہ ڈومین کی توثیق کرنے کے لئے عارضی فائل تشکیل دے کر کام کرتا ہے۔ چلو انکرپٹ سرور عارضی فائل سے HTTP درخواستوں کی توثیق کرتا ہے تاکہ یہ تصدیق کی جاسکے کہ درخواست کردہ ڈومین سرور میں حل ہوجاتا ہے جہاں سرٹیٹ بوٹ چلتا ہے۔

اس کو مزید آسان بنانے کے /var/lib/letsencrypt . ہم ایک واحد ڈائرکٹری ، /var/lib/letsencrypt .well-known/acme-challenge لئے تمام HTTP درخواستوں کا نقشہ /var/lib/letsencrypt گے۔

مندرجہ ذیل کمانڈز ڈائریکٹری تشکیل دیں گے اور اسے نینگس سرور کیلئے قابل تحریر بنا دیں گے۔

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp nginx /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

نقل کوڈ سے بچنے کے لئے ، درج ذیل دو ٹکڑوں کو بنائیں جو تمام Nginx سرور بلاک فائلوں میں شامل ہوں گے۔

sudo mkdir /etc/nginx/snippets /etc/nginx/snippets/letsencrypt.conf

location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; } /etc/nginx/snippets/ssl.conf

ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;

مذکورہ ٹکڑے میں موزیلا کے ذریعہ تجویز کردہ چیپرز شامل ہیں ، او سی ایس پی اسٹپلنگ ، ایچ ٹی ٹی پی سخت ٹرانسپورٹ سیکیورٹی (ایچ ایس ٹی ایس) کو اہل بناتا ہے ، اور حفاظتی مرکوز ایچ ٹی ٹی پی ہیڈر کو نافذ کرتا ہے۔

ایک بار ٹکڑوں کے letsencrypt.conf بعد ، ڈومین سرور بلاک کھولیں اور letsencrypt.conf کا ٹکڑا شامل کریں ، جیسا کہ ذیل میں دکھایا گیا ہے:

/etc/nginx/conf.d/example.com.conf

server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }

تبدیلیوں کے اثر انداز ہونے کے لئے نینگینکس ترتیب کو دوبارہ لوڈ کریں:

sudo systemctl reload nginx

اپنے ڈومین کیلئے SSL سرٹیفکیٹ فائلوں کو حاصل کرنے کے لئے ویبروٹ پلگ ان کے ساتھ سیرٹ بوٹ ٹول چلائیں:

sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

اگر آپ پہلی بار certbot تو ، ٹول گمشدہ انحصار انسٹال کرے گا۔

ایک بار جب SSL سرٹیفکیٹ کامیابی کے ساتھ حاصل ہوجائے تو ، سرٹبوٹ مندرجہ ذیل پیغام کو پرنٹ کرے گا۔

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-03-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

اب جب کہ آپ کے پاس سرٹیفکیٹ فائلیں ہیں ، آپ اپنے ڈومین سرور بلاک میں درج ذیل ترمیم کرسکتے ہیں۔

/etc/nginx/conf.d/example.com.conf

server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }

مذکورہ بالا ترتیب کے ساتھ ہم ایچ ٹی ٹی پی ایس پر مجبور ہو رہے ہیں اور www کو نان www ورژن میں بھیج رہے ہیں۔

آخر میں ، تبدیلیوں کے اثر انداز ہونے کے لئے نینگینکس سروس کو دوبارہ لوڈ کریں۔

sudo systemctl reload nginx

اب ، https:// کا استعمال کرتے ہوئے اپنی ویب سائٹ کھولیں ، اور آپ کو گرین لاک آئیکن نظر آئے گا۔

خودکار تجدید کرتے ہوئے آئی ایس کو اینکرپٹ ایس ایس ایل سرٹیفکیٹ دیں

آئیے اینکرپٹ کے سرٹیفکیٹ 90 دن کے لئے موزوں ہیں۔ سرٹیفکیٹ کی میعاد ختم ہونے سے پہلے خود بخود تجدید کرنے کے لئے ، ایک ایسا کرون کام بنائیں جو دن میں دو بار چلے گا اور میعاد ختم ہونے سے 30 دن قبل خود بخود کسی بھی سرٹیفکیٹ کی تجدید کریں۔

نیا cronjob بنانے کے لئے crontab کمانڈ استعمال کریں:

sudo crontab -e

درج ذیل لائن چسپاں کریں:

0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook "systemctl reload nginx"

فائل کو محفوظ کریں اور بند کریں۔

تجدید کاری کے عمل کی جانچ کرنے کے لئے ، آپ سرٹبوٹ کمانڈ استعمال کرسکتے ہیں جس کے بعد - ڈرائی --dry-run سوئچ ہوگا:

sudo certbot renew --dry-run

اگر کوئی غلطیاں نہیں ہیں تو ، اس کا مطلب یہ ہے کہ ٹیسٹ کی تجدید کا عمل کامیاب رہا۔

نتیجہ اخذ کرنا

اس ٹیوٹوریل میں ، ہم نے آپ کو دکھایا ہے کہ اپنے ڈومین کے لئے ایس ایس ایل سرٹیفکیٹ ڈاؤن لوڈ کرنے کے لئے لیٹ انکرپٹ کلائنٹ ، سیرٹبوٹ کو کس طرح استعمال کریں۔ ہم نے ڈپلیکیٹ کوڈ سے بچنے کے لئے نجنکس کے ٹکڑوں کو بھی تشکیل دیا ہے اور سرٹیفکیٹ کو استعمال کرنے کے لئے نجنکس کو تشکیل دیا ہے۔ سبق کے اختتام پر ، ہم نے خود کار طریقے سے سرٹیفکیٹ کی تجدید کیلئے ایک کرون کام ترتیب دیا ہے۔

سیرٹبوٹ کے بارے میں مزید معلومات کے ل their ، ان کے دستاویزات کا صفحہ دیکھیں۔

اینگینکس سینٹوز آئیے خفیہ کاری کے سرٹبوٹ ایس ایس ایل کریں