আমার একটি এনগিনেক্স এবং বিভিন্ন সাবডোমেন রয়েছে:
a.mydomain.com
b.mydomain.com
c.mydomain.com
এনগিনেক্সের 4 টি বিধি রয়েছে:
1) পুনর্লিখনের নিয়ম:
server {
listen 80
server_name gl.udesk.org;
root /nowhere;
rewrite ^ https://a.mydomain.com$request_uri permanent;
}
2) https নিয়ম:
server {
listen 443;
server_name a.mydomain.com;
root /home/a/a/public;
ssl on;
ssl_certificate conf.d/ssl/a.crt;
ssl_certificate_key conf.d/ssl/a.key;
ssl_protocols ...
ssl_ciphers ...
ssl_prefer_server_ciphers on;
location ...
}
3) HTTP ডিফল্ট নিয়ম:
server {
listen 80 default_server;
return 444;
}
4) https ডিফল্ট নিয়ম:
server {
listen 443 default_server;
return 444;
}
সুতরাং আমি যদি nginx শুরু করি এবং:
- যদি আমি ব্রাউজারে http://a.mydomain.com এ যাই তবে এটি https://a.mydomain.com এ পুনঃনির্দেশ করে এবং তারপরে এটি একটি ত্রুটি 107 (নেট :: ERR_SSL_PROTOCOL_ERROR) প্রদান করে: SSL প্রোটোকল ত্রুটি।
- যদি আমি ব্রাউজারে https://b.mydomain.com এ যাই তবে আমি আশা করি এটি 444 ত্রুটি ফিরে পেয়েছে । তবে পরিবর্তে এটি একই ত্রুটি 107 প্রদান করে (নেট :: ERR_SSL_PROTOCOL_ERROR): এসএসএল প্রোটোকল ত্রুটি।
- এবং তাই ডিএনএস সরবরাহকারী সিএনএম দ্বারা নিবন্ধিত সকলের জন্য (যেমন ক, খ, সি)
- সমস্ত http- সংস্করণ (যেমন বিধি 3 -) প্রত্যাশার মতো কাজ করছে:
- http://a.mydomain.com https: // সংস্করণে পুনঃনির্দেশ করে,
- http://b.mydomain.com এবং http://c.mydomain.com কনফিগার করা হিসাবে 444 পিছনে একটি ত্রুটি ফিরিয়ে দিচ্ছে।
তাহলে এনজিএনএক্সের https বিধিগুলি কনফিগার করার জন্য এত জটিল এবং আমি কীভাবে এগুলি সঠিকভাবে কনফিগার করব যাতে এইচটিপি সংস্করণটির সাথে একই আচরণ করা যায়?
হালনাগাদ:
একটি নতুন শংসাপত্র তৈরি এবং যুক্ত করা হচ্ছে:
ssl on;
ssl_certificate conf.d/ssl/default.crt;
ssl_certificate_key conf.d/ssl/default.key;
এখন কাজ করে তবে কোনও এসএসএল শংসাপত্রের প্রয়োজন ছাড়াই আমার একটি সমাধান হবে। শংসাপত্র সরবরাহ না করেই https://a.mydomain.com ব্যতীত সমস্ত https (পোর্ট 443) সাবডমেনগুলির জন্য সমস্ত সংযোগ পুনরায় সেট করুন ।
nginx
ব্যবহারকারী এটি করতে চায় তার জন্য এটির কোনও শংসাপত্রের প্রয়োজন নেই তা উপলব্ধি করতে যথেষ্ট স্মার্ট নয়।