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

ওবুন্টু 16.04 এ এনক্রিপ্ট সহ নিরাপদ এনজিনেক্স

যাক & # 39; s এর এনক্রিপ্ট Nedir উবুন্টু 16,04 & রক্ষণ # 39; ই Kurulumu

যাক & # 39; s এর এনক্রিপ্ট Nedir উবুন্টু 16,04 & রক্ষণ # 39; ই Kurulumu

সুচিপত্র:

Anonim

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

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

পূর্বশর্ত

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

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

Certbot ইনস্টল করুন

সার্টবট পাইথন-এ লেখা একটি ইউটিলিটি যা এসো এসক্রিপ্ট এসএসসিপি ও ওয়েব সার্ভারগুলি কনফিগার করার জন্য পুনর্নবীকরণের জন্য কাজগুলি স্বয়ংক্রিয় করতে পারে।

প্রথমে software-properties-common প্যাকেজ ইনস্টল করুন যা অতিরিক্ত পিপিএ যুক্ত করার জন্য প্রয়োজনীয় add-apt-repository সরঞ্জাম সরবরাহ করে।

প্যাকেজ সূচক আপডেট করুন এবং এর সাথে software-properties-common ইনস্টল করুন:

sudo apt update sudo apt install software-properties-common

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

sudo add-apt-repository ppa: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

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

/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: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 স্নিপেট অন্তর্ভুক্ত করুন:

/etc/nginx/sites-available/example.com.conf

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

sites-enabled sites-available থেকে প্রতীকী লিঙ্ক তৈরি করে সার্ভার ব্লকটি sites-enabled :

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

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

sudo systemctl reload 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-04-23. 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:

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

/etc/nginx/sites-available/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 }

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

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

sudo systemctl reload nginx

এসএসএল শংসাপত্রের স্বয়ংক্রিয় পুনর্নবীকরণ

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

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

/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

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

উপসংহার

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

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