হ্যাঁ, আপনার এইচটিটিপি সার্ভারগুলিতে এনগিনেক্স প্রক্সি অনুরোধ থাকতে পারে এবং তারপরে নিজেই এইচটিটিপিএস-এর মাধ্যমে ক্লায়েন্টদের প্রতিক্রিয়া জানাতে পারেন। এটি করার সময়, আপনি নিশ্চিত হয়ে উঠতে চাইবেন যে nginx <-> প্রক্সি সংযোগটি আপনার প্রত্যাশিত আক্রমণকারী যাকেই কমিয়ে আনার সম্ভাবনা নেই। নিরাপদ পর্যাপ্ত পদ্ধতির মধ্যে অন্তর্ভুক্ত থাকতে পারে:
- একই হোস্টকে প্রক্সিং করা (যেমন আপনি করেন)
- আপনার ফায়ারওয়ালের পিছনে অন্যান্য হোস্টকে প্রক্সিং করা
পাবলিক ইন্টারনেটে অন্য হোস্টের কাছে প্রক্সিং করা নিরাপদ পর্যাপ্ত হওয়ার সম্ভাবনা নেই।
প্রক্সি হিসাবে আপনি যে একই ওয়েবসভারটি ব্যবহার করছেন তা ব্যবহার করে একটি লেটস এনক্রিপ্ট শংসাপত্র পাওয়ার জন্য এখানে নির্দেশাবলী রয়েছে।
চলুন এনক্রিপ্ট থেকে আপনার প্রাথমিক শংসাপত্রের জন্য অনুরোধ করা হচ্ছে
স্থানীয় ডিরেক্টরি থেকে server
সাব-ডিরেক্টরিকে .well-known
পরিবেশন করার অনুমতি দেওয়ার জন্য আপনার ধারাটি সংশোধন করুন , যেমন:
server {
listen 80;
server_name sub.domain.com www.sub.domain.com;
[…]
location /.well-known {
alias /var/www/sub.domain.com/.well-known;
}
location / {
# proxy commands go here
[…]
}
}
http://sub.domain.com/.well-known
এই যে চলো এনক্রিপ্ট সার্ভারগুলি এটি যে চ্যালেঞ্জগুলি জাগিয়েছে তার উত্তরগুলি সন্ধান করবে।
এর পরে আপনি ব্যবহার করতে পারেন certbot ব্যবহার আসুন এনক্রিপ্ট থেকে একটি শংসাপত্র অনুরোধ ক্লায়েন্ট webroot প্লাগইন (root পরিচয়ে):
certbot certonly --webroot -w /var/www/sub.domain.com/ -d sub.domain.com -d www.sub.domain.com
আপনার কী, শংসাপত্র এবং শংসাপত্র শৃঙ্খলা এখন ইনস্টল করা হবে /etc/letsencrypt/live/sub.domain.com/
আপনার শংসাপত্রটি ব্যবহার করার জন্য এনজিএনএক্স কনফিগার করছে
প্রথমে নতুন সার্ভারের এই ধারাটি তৈরি করুন:
server {
listen 443 ssl;
# if you wish, you can use the below line for listen instead
# which enables HTTP/2
# requires nginx version >= 1.9.5
# listen 443 ssl http2;
server_name sub.domain.com www.sub.domain.com;
ssl_certificate /etc/letsencrypt/live/sub.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sub.domain.com/privkey.pem;
# Turn on OCSP stapling as recommended at
# https://community.letsencrypt.org/t/integration-guide/13123
# requires nginx version >= 1.3.7
ssl_stapling on;
ssl_stapling_verify on;
# Uncomment this line only after testing in browsers,
# as it commits you to continuing to serve your site over HTTPS
# in future
# add_header Strict-Transport-Security "max-age=31536000";
access_log /var/log/nginx/sub.log combined;
# maintain the .well-known directory alias for renewals
location /.well-known {
alias /var/www/sub.domain.com/.well-known;
}
location / {
# proxy commands go here as in your port 80 configuration
[…]
}
}
পুনরায় লোড করুন:
service nginx reload
যাচাই করুন যে HTTPS দ্বারা এখন পরিদর্শন করে কাজ করে https://sub.domain.com
এবং https://www.sub.domain.com
আপনার ব্রাউজার (এবং অন্য কোন ব্রাউজার সমর্থন আপনি নির্দিষ্টভাবে ইচ্ছুক) এবং পরীক্ষণ যে তারা শংসাপত্রে ত্রুটি প্রতিবেদন না।
প্রস্তাবিত: এছাড়াও raymii.org পর্যালোচনা করুন: এনগিনেক্সে শক্তিশালী এসএসএল সুরক্ষা
এবং এসএসএল ল্যাবগুলিতে আপনার কনফিগারেশনটি পরীক্ষা করুন ।
(প্রস্তাবিত) এইচটিটিপিএস অনুরোধগুলি HTTPS এ পুনঃনির্দেশ করুন Red
একবার আপনি নিশ্চিত https://
হয়ে গেলেন যে আপনার সাইটটি ইউআরএল সংস্করণ নিয়ে কাজ করে, কিছু ব্যবহারকারী অনিরাপদ বিষয়বস্তু পরিবেশন করার পরিবর্তে http://sub.domain.com
সেগুলি সাইটের এইচটিটিপিএস সংস্করণে পুনর্নির্দেশ করে।
আপনার পুরো বন্দর 80 টি server
ধারাটি এর সাথে প্রতিস্থাপন করুন :
server {
listen 80;
server_name sub.domain.com www.sub.domain.com;
rewrite ^ https://$host$request_uri? permanent;
}
আপনার এখন 443 কনফিগারেশনের বন্দরে এই লাইনটি অসুবিধা করা উচিত, যাতে ব্রাউজারগুলি সাইটের এইচটিটিপি সংস্করণটি চেষ্টা না করে দেখতেও ভুলে যায়:
add_header Strict-Transport-Security "max-age=31536000";
স্বয়ংক্রিয়ভাবে আপনার শংসাপত্র পুনর্নবীকরণ
আপনি এই কমান্ডটি (রুট হিসাবে) নতুন সার্টিফিকেট ব্যবহার করে (যা আপনার বিদ্যমান শংসাপত্রের মতো একই পথ পাবে) ব্যবহার করে সার্টিবোট এবং এনগিনেক্স পুনরায় লোড করার জন্য পরিচিত সমস্ত শংসাপত্রগুলি পুনর্নবীকরণ করতে ব্যবহার করতে পারেন:
certbot renew --renew-hook "service nginx reload"
সার্টবোট কেবলমাত্র than০ দিনের বেশি পুরানো শংসাপত্রগুলি পুনর্নবীকরণের চেষ্টা করবে, সুতরাং খুব সহজেই এই কমান্ডটি চালানো নিরাপদ (এবং প্রস্তাবিত!) এবং যদি সম্ভব হয় তবে স্বয়ংক্রিয়ভাবে এটি নিরাপদ । উদাহরণস্বরূপ, আপনি নিম্নলিখিত কমান্ডটি ভিতরে রাখতে পারেন /etc/crontab
:
# at 4:47am/pm, renew all Let's Encrypt certificates over 60 days old
47 4,16 * * * root certbot renew --quiet --renew-hook "service nginx reload"
আপনি শুকনো রান দিয়ে নবায়নগুলি পরীক্ষা করতে পারেন, যা আপনার ডোমেনের সাথে যোগাযোগের সত্যিকারের পরীক্ষা করার জন্য চলুন এনক্রিপ্ট স্টেজিং সার্ভারগুলিতে যোগাযোগ করবে , তবে ফলাফল শংসাপত্রগুলি সংরক্ষণ করবে না :
certbot --dry-run renew
অথবা আপনি এটির সাথে কোনও প্রাথমিক পুনর্নবীকরণ বাধ্য করতে পারেন:
certbot renew --force-renew --renew-hook "service nginx reload"
দ্রষ্টব্য: আপনি নিজের পছন্দমতো রান শুকনো করতে পারেন তবে আসল পুনর্নবীকরণগুলি চলুন এনক্রিপ্টের হার সীমা সাপেক্ষে ।