অ্যান্ড্রয়েড

ডিবিয়ান 10 লিনাক্সে এনক্রিপ্ট সহ নিরাপদ এনজিনেক্স

FiqueEmCasaUseDebian #16 - Ubuntu: um fork do Debian?

FiqueEmCasaUseDebian #16 - Ubuntu: um fork do Debian?

সুচিপত্র:

Anonim

আসুন এনক্রিপ্ট হ'ল একটি নিখরচায়, স্বয়ংক্রিয় এবং ওপেন শংসাপত্র কর্তৃপক্ষ ইন্টারনেট সুরক্ষা গবেষণা গ্রুপ (আইএসআরজি) দ্বারা বিকাশ করা যা নিখরচায় এসএসএল শংসাপত্র সরবরাহ করে।

লেটস এনক্রিপ্ট দ্বারা জারি করা শংসাপত্রগুলি সমস্ত বড় ব্রাউজার দ্বারা বিশ্বাসযোগ্য এবং ইস্যু তারিখ থেকে 90 দিনের জন্য বৈধ।

এই টিউটোরিয়ালটি দেখায় যে কীভাবে একটি ডেবিয়ান 10, বুস্টার একটি ওয়েব সার্ভার হিসাবে চলমান বাস্টারকে একটি বিনামূল্যে চলুন এনক্রিপ্ট এসএসএল শংসাপত্র ইনস্টল করতে হয়। আমরা এসএসএল শংসাপত্রটি ব্যবহার করতে এবং এইচটিটিপি / 2 সক্ষম করতে কীভাবে এনগিনেক্সকে কনফিগার করতে হয় তাও আমরা দেখাব।

পূর্বশর্ত

গাইডের সাথে এগিয়ে যাওয়ার আগে নিম্নলিখিত পূর্বশর্তগুলি পূরণ করা হয়েছে তা নিশ্চিত করুন:

  • সুডো সুবিধাগুলি সহ রুট বা ব্যবহারকারী হিসাবে লগ ইন হয়েছে The যে ডোমেনের জন্য আপনি এসএসএল শংসাপত্রটি পেতে চান তা অবশ্যই আপনার সার্বজনীন সার্ভার আইপিতে নির্দেশ করতে হবে। আমরা example.com ডটকম.এনগিনেক্স ইনস্টল করব।

সার্টবট ইনস্টল করা হচ্ছে

আমরা শংসাপত্রগুলি পাওয়ার ও পুনর্নবীকরণের জন্য সার্টিবোট সরঞ্জামটি ব্যবহার করব।

সার্টবোট হ'ল একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত এবং সহজেই ব্যবহারযোগ্য সরঞ্জাম যা আসুন এসএসএল এনক্রিপ্ট এনক্রিপ্ট এবং শংসাপত্রগুলি ব্যবহার করার জন্য ওয়েব সার্ভারগুলি কনফিগার করার কাজগুলি স্বয়ংক্রিয় করে তোলে।

Certbot প্যাকেজটি ডিফল্ট ডেবিয়ান সংগ্রহস্থলের অন্তর্ভুক্ত। সার্টিবোট ইনস্টল করতে নিম্নলিখিত কমান্ডগুলি চালান:

sudo apt update sudo apt install certbot

জেনারেটিং ডি (ডিফি-হেলম্যান) গ্রুপ man

ডিফি – হেলম্যান কী এক্সচেঞ্জ (ডিএইচ) একটি সুরক্ষিত কোনও যোগাযোগ চ্যানেলের মাধ্যমে ক্রিপ্টোগ্রাফিক কীগুলি নিরাপদে আদান প্রদানের একটি পদ্ধতি।

সুরক্ষা জোরদার করতে আমরা 2048 বিট ডিএইচ প্যারামিটারের একটি নতুন সেট তৈরি করতে চলেছি:

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

আপনি আকারটি 4096 বিট পর্যন্ত পরিবর্তন করতে পারেন তবে প্রজন্মটি সিস্টেম এনট্রপির উপর নির্ভর করে 30 মিনিটেরও বেশি সময় নিতে পারে।

একটি চলুন এনক্রিপ্ট এসএসএল শংসাপত্র প্রাপ্ত

ডোমেনের জন্য একটি এসএসএল শংসাপত্র পেতে, আমরা ওয়েবরুট প্লাগইন ব্যবহার করতে যাচ্ছি। এটি ${webroot-path}/.well-known/acme-challenge ডিরেক্টরিতে অনুরোধ করা ডোমেনটি বৈধ করার জন্য একটি অস্থায়ী ফাইল তৈরি করে কাজ করে। চলুন এনক্রিপ্ট সার্ভারটি অনুরোধ করা ডোমেনটি সেই সার্ভারে সল্টবট চালিত হয় সেখানে যাচাই করার জন্য অস্থায়ী ফাইলটিতে HTTP অনুরোধ জানায়।

আমরা একক ডিরেক্টরি, /var/lib/letsencrypt র কাছে .well-known/acme-challenge /var/lib/letsencrypt .well-known/acme-challenge জন্য সমস্ত HTTP অনুরোধগুলি ম্যাপ করতে /var/lib/letsencrypt

ডিরেক্টরিটি তৈরি করতে এবং এটিকে Nginx সার্ভারের জন্য লিখিতযোগ্য করার জন্য নিম্নলিখিত কমান্ডগুলি চালান:

chgrp www-data /var/lib/letsencrypt mkdir -p /var/lib/letsencrypt/.well-known chgrp www-data /var/lib/letsencrypt chmod g+s /var/lib/letsencrypt

সদৃশ কোড এড়ানোর জন্য, আমরা দুটি স্নিপেট তৈরি করব যা সমস্ত এনগিনেক্স সার্ভার ব্লক ফাইলগুলিতে অন্তর্ভুক্ত থাকবে।

আপনার পাঠ্য সম্পাদকটি খুলুন এবং প্রথম স্নিপেট তৈরি করুন, letsencrypt.conf :

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

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

দ্বিতীয় স্নিপেট ssl.conf মোজিলা দ্বারা প্রস্তাবিত ssl.conf অন্তর্ভুক্ত রয়েছে, ssl.conf , এইচটিটিপি স্ট্রাইক ট্রান্সপোর্ট সিকিউরিটি (এইচএসটিএস) সক্ষম করে এবং সুরক্ষা-কেন্দ্রিক কয়েকটি এইচটিটিপি শিরোনাম প্রয়োগ করে।

sudo nano /etc/nginx/snippets/ssl.conf /etc/nginx/snippets/ssl.conf

ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; 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 স্নিপেট অন্তর্ভুক্ত করুন:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

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

ডোমেন সার্ভার ব্লক সক্ষম করতে sites-enabled ডিরেক্টরিতে একটি প্রতীকী লিঙ্ক তৈরি করুন:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

পরিবর্তনগুলি কার্যকর করতে Nginx পরিষেবাটি পুনরায় চালু করুন:

sudo systemctl restart nginx

আপনি এখন নিম্নলিখিত কমান্ডটি চালিয়ে এসএসএল শংসাপত্র ফাইলগুলি পেতে প্রস্তুত:

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

যদি এসএসএল শংসাপত্রটি সফলভাবে প্রাপ্ত হয় তবে নিম্নলিখিত বার্তাটি আপনার টার্মিনালে মুদ্রিত হবে:

IMPORTANT NOTES: 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-02-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

ডোমেন সার্ভার ব্লক সম্পাদনা করুন এবং এসএসএল শংসাপত্র ফাইলগুলি অন্তর্ভুক্ত করুন:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

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 }

উপরের কনফিগারেশনটি Nginx কে HTTP থেকে HTTPS এবং www থেকে নন-www সংস্করণে পুনর্নির্দেশ করতে বলে।

পরিবর্তনগুলি কার্যকর করতে Nginx পরিষেবাটি পুনরায় চালু করুন বা পুনরায় লোড করুন:

sudo systemctl restart nginx

https:// ব্যবহার করে আপনার ওয়েবসাইটটি খুলুন এবং আপনি একটি সবুজ লক আইকনটি লক্ষ্য করবেন।

স্বতঃ নবায়ন চলুন এসএসএল শংসাপত্র এনক্রিপ্ট করুন

আসুন এনক্রিপ্টের শংসাপত্রগুলি 90 দিনের জন্য বৈধ। শংসাপত্রগুলির মেয়াদ শেষ হওয়ার পূর্বে স্বয়ংক্রিয়ভাবে পুনর্নবীকরণের জন্য, সার্টিবোট প্যাকেজটি এমন ক্রোনজব তৈরি করে যা দিনে দুবার চলে এবং স্বয়ংক্রিয়ভাবে কোনও শংসাপত্রের মেয়াদ শেষ হওয়ার 30 দিন আগে পুনর্নবীকরণ করে।

পুনর্নবীকরণের সময় শংসাপত্রটি লোড করার জন্য সার্ভারের জন্য অবশ্যই এনগিনেক্স পরিষেবাটি পুনরায় লোড করতে হবে। --renew-hook "systemctl reload nginx" করুন যাতে এটির মতো দেখতে:

sudo nano /etc/cron.d/certbot /etc/cron.d/certbot

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

এই কমান্ডটি চালিয়ে স্বয়ংক্রিয় পুনর্নবীকরণ প্রক্রিয়াটি পরীক্ষা করুন:

sudo certbot renew --dry-run

যদি কোনও ত্রুটি না থাকে তবে এর অর্থ এই যে নবায়ন প্রক্রিয়াটি সফল হয়েছিল।

উপসংহার

আজকাল একটি এসএসএল শংসাপত্র থাকা আবশ্যক। এটি আপনার ওয়েবসাইটকে সুরক্ষিত করে, এসআরপি র‌্যাঙ্কিংয়ের অবস্থান বাড়ে এবং আপনাকে আপনার ওয়েব সার্ভারে HTTP / 2 সক্ষম করতে দেয়।

এই টিউটোরিয়ালে, আমরা আপনাকে দেখিয়েছি কীভাবে সার্টিবোট স্ক্রিপ্ট ব্যবহার করে এসএসএল শংসাপত্রগুলি তৈরি এবং নবায়ন করা যায়। শংসাপত্রগুলি ব্যবহার করতে কীভাবে Nginx কনফিগার করতে হয় তাও আমরা আপনাকে দেখিয়েছি।

সার্টবোট সম্পর্কে আরও জানার জন্য, সার্টবট ডকুমেন্টেশন দেখুন।

nginx ডেবিয়ান আসুন certbot এসএসএল এনক্রিপ্ট করা যাক