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

উবুন্টুতে 18.04 এ এনক্রিপ্ট সহ নিরাপদ এনজিনেক্স

আসুন & # 39 চালিয়ে অ্যাপাচে নিরাপদ করার জন্য HTTPS দ্বারা ইনস্টল করুন কিভাবে; র উবুন্টু 18.04 LTS উপর এনক্রিপ্ট TLS / SSL এর সার্টিফিকেট

আসুন & # 39 চালিয়ে অ্যাপাচে নিরাপদ করার জন্য HTTPS দ্বারা ইনস্টল করুন কিভাবে; র উবুন্টু 18.04 LTS উপর এনক্রিপ্ট TLS / SSL এর সার্টিফিকেট

সুচিপত্র:

Anonim

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

এই টিউটোরিয়ালে, আমরা উবুন্টু 18.04-তে সার্টিবোট সরঞ্জামটি ব্যবহার করে লেটস এনক্রিপ্ট দিয়ে আপনার এনগিনেক্সকে কীভাবে সুরক্ষিত করা যায় সে সম্পর্কে এক ধাপে নির্দেশনা সরবরাহ করব provide

পূর্বশর্ত

এই টিউটোরিয়ালটি চালিয়ে যাওয়ার আগে আপনি নিম্নলিখিত শর্তগুলি পূরণ করেছেন তা নিশ্চিত করুন:

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

Certbot ইনস্টল করুন

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

প্যাকেজ তালিকা আপডেট করুন এবং সার্টিবোট প্যাকেজ ইনস্টল করুন:

sudo apt update sudo apt install certbot

স্ট্রং ডিএইচ (ডিফি-হেলম্যান) গ্রুপ তৈরি করুন

ডিফি – হেলম্যান কী এক্সচেঞ্জ (ডিএইচ) একটি সুরক্ষিত কোনও যোগাযোগ চ্যানেলের মাধ্যমে ক্রিপ্টোগ্রাফিক কীগুলি নিরাপদে আদান প্রদানের একটি পদ্ধতি। সুরক্ষা জোরদার করতে আমরা 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 জন্য সমস্ত 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 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; 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=15768000; includeSubdomains; preload"; 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: - 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 2018-07-28. 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" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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 }

উপরের কনফিগারেশনটি সহ আমরা এইচটিটিপিএসকে বাধ্য করছি এবং www থেকে নন www সংস্করণে পুনর্নির্দেশ করছি।

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

sudo systemctl reload nginx

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

আসুন এনক্রিপ্টের শংসাপত্রগুলি 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"

পুনর্নবীকরণ প্রক্রিয়াটি পরীক্ষা করতে, আপনি --dry-run ড্রাই --dry-run ব্যবহার করতে পারেন:

sudo certbot renew --dry-run

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

উপসংহার

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

nginx উবুন্টু আসুন সার্টিবোট এসএসএল এনক্রিপ্ট করা যাক

এই পোস্টটি উবুন্টু-18-04 সিরিজে কীভাবে ইনস্টল করা-লিম্প-স্ট্যাক-ইনস্টল করা হবে তার একটি অংশ।

এই সিরিজের অন্যান্য পোস্ট:

U উবুন্টুতে কীভাবে এনগিনেক্স ইনস্টল করবেন 18.04 U উবুন্টু 18.04 এ এনগিনেক্স সার্ভার ব্লক কীভাবে সেটআপ করবেন Let's উবুন্টু 18.04 এ এনক্রিপ্ট সহ এনগিনেক্স সুরক্ষিত করুন bu উবুন্টু 18.04 এ মাইএসকিউএল ইনস্টল করবেন কীভাবে u উবুন্টুতে কীভাবে পিএইচপি ইনস্টল করবেন 18.04