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

নিরাপদ এনগিনেক্সের সাথে সেন্টোস 8 এ এনক্রিপ্ট করুন

ফুল Node.js ডিপ্লোয়মেন্ট - nginx, সহ SSL দেয় এনক্রিপ্ট

ফুল Node.js ডিপ্লোয়মেন্ট - nginx, সহ SSL দেয় এনক্রিপ্ট

সুচিপত্র:

Anonim

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

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

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

পূর্বশর্ত

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

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

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

সার্টবট হ'ল একটি নিখরচায় কমান্ড-লাইন সরঞ্জাম যা আপনার সার্ভারে এইচটিটিপিএস থেকে স্বতঃ-সক্ষম করে এসএসএল শংসাপত্রগুলি এনক্রিপ্ট করুন এবং পুনর্নবীকরণের প্রক্রিয়াটিকে সহজতর করে।

Certbot প্যাকেজটি স্ট্যান্ডার্ড CentOS 8 সংগ্রহস্থলের অন্তর্ভুক্ত নয়, তবে এটি বিক্রেতার ওয়েবসাইট থেকে ডাউনলোড করা যেতে পারে।

/usr/local/bin ইউএসআর /usr/local/bin ডিরেক্টরিতে সার্টিবোট স্ক্রিপ্ট ডাউনলোড করতে নিম্নলিখিত উইজেট কমান্ডটি রুট বা sudo ব্যবহারকারী হিসাবে চালান:

sudo wget -P /usr/local/bin

ডাউনলোড শেষ হয়ে গেলে ফাইলটিকে এক্সিকিউটেবল করে তুলুন:

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

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

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

নিম্নলিখিত কমান্ডটি লিখে 2048 বিট ডিএইচ প্যারামিটারের একটি নতুন সেট তৈরি করুন:

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

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

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

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

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

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

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

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 স্নিপেট অন্তর্ভুক্ত করুন, যেমন নীচের মত দেখাচ্ছে:

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

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

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

sudo systemctl reload nginx

আপনার ডোমেনের জন্য এসএসএল শংসাপত্র ফাইলগুলি পেতে ওয়েবরুট প্লাগইন দিয়ে সেরিটবট সরঞ্জামটি চালান:

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 তবে সরঞ্জামটি হারিয়ে যাওয়া নির্ভরতাগুলি ইনস্টল করবে।

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

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 সংস্করণে পুনর্নির্দেশ করছি।

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

sudo systemctl reload nginx

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

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

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

একটি নতুন ক্রোনজব তৈরি করতে 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

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

উপসংহার

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

সার্টবট সম্পর্কে আরও জানতে, তাদের ডকুমেন্টেশন পৃষ্ঠাতে যান।

এনজিএনএক্স সেন্টোস আসুন সার্টিবোট এসএসএল এনক্রিপ্ট করুন