সমস্যাটি মূলত সংস্করণ নির্ভরতা বলে মনে হচ্ছে। উবুন্টু 14.04 এলটিএসে ডিফল্ট এনগিনেক্স একটি পুরানো 1.4। প্রথমে আপনাকে পিপিএ ভিত্তিক সংস্করণ ইনস্টল করতে হবে
https://leftshift.io/upgrading-nginx-to-the-latest-version-on-ubuntu-servers
এটি কীভাবে এটি করবেন তা দেখায়:
sudo add-apt-repository ppa:nginx/stable
sudo aptitude safe-upgrade
আপনার সাথে শেষ করা উচিত:
nginx -v
nginx version: nginx/1.8.0
@ Xatr0z উত্তর থেকে কনফিগারেশন https://serverfault.com/a/636455/162693 http://www.senginx.org/en/index.php/Proxy_HTTPS_Client_Cerificationsate- এ নির্দেশ
করে:
কর্মহীন প্রস্তাব
backend {
server some-ip:443;
}
server {
listen 80;
location / {
proxy_ssl_certificate certs/client.crt;
proxy_ssl_certificate_key certs/client.key;
proxy_pass https://backend;
}
}
1.8.0 এর সাথে বাক্সটির বাইরে কাজ করে না। এটি সম্ভবত একটি ইঙ্গিত হিসাবে বোঝানো হয়েছে এবং এটি কনফিগারেশন ফাইল হিসাবে ব্যবহার করা হবে না বা অন্য সংস্করণের উপর নির্ভর করে।
আমি একটি অ্যাপাচি 2 ভিত্তিক ব্যাকএন্ড সার্ভার এ এসএসএল এবং স্ব-স্বাক্ষরিত ক্লায়েন্ট শংসাপত্র সক্ষম সহ পরীক্ষা করছি। অ্যাপাচি কনফিগারেশন এসএসএলপিশনগুলি এতে সেট করা আছে:
SSLOptions +ExportCertData +FakeBasicAuth + StdEnvVars
এটি পরিস্থিতি ডিবাগিংকে আরও সহজ করে তোলে যেহেতু ব্যাকএন্ড পাশের একটি phpinfo () স্ক্রিপ্ট সার্ভার এবং ক্লায়েন্ট সাইডের তথ্য প্রদর্শন করবে।
আমি এটি ব্যবহার করে যাচাই করতে:
HTTPS: // ব্যাকএন্ড / পরীক্ষা / phpinfo
ব্রাউজারে এসএসএল শংসাপত্র ইনস্টল করা আছে এবং আমি যেমন বিভাগগুলি পাই: সার্ভার শংসাপত্রের জন্য SSL_SERVER_S_DN_CN এবং ক্লায়েন্ট শংসাপত্রের জন্য SSL_CLIENT_S_DN_CN।
প্রথম প্রারম্ভ হিসাবে আমি ফ্রন্টএন্ড সার্ভার বিতে এনজিনেক্স কনফিগার করতে (বন্ধনীগুলির অংশগুলি পূরণ করুন) ব্যবহার করেছি:
server {
listen 8080;
server_name <frontend>;
location / {
proxy_buffering off;
proxy_pass https://<backend>;
#proxy_ssl_certificate certs/<SSL Client Certificate>.crt;
#proxy_ssl_certificate_key certs/<SSL Client Certificate>.key;
}
}
বিএসএল ক্লায়েন্ট শংসাপত্রের নির্দিষ্ট অংশটি কেবলমাত্র বিপরীত প্রক্সিটি কাজ করে তা পরীক্ষা করে।
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
service nginx restart
nginx stop/waiting
nginx start/running, process 8931
এখন http: // ফ্রন্টএন্ড: 8080 / টেস্ট / phpinfo.php কাজ করে দ্য
সার্ভার শংসাপত্রের জন্য SSL_SERVER_S_DN_CN প্রদর্শিত হবে এবং ক্লায়েন্ট শংসাপত্রের জন্য SSL_CLIENT_S_DN_CN প্রদর্শিত হয়নি (এখনও) প্রদর্শিত হয়নি
এখন অস্বাস্থ্যকর পরে:
server {
listen 8080;
server_name <frontend>;
location / {
proxy_buffering off;
proxy_pass https://<backend>;
proxy_ssl_certificate certs/<SSL Client Certificate>.crt;
proxy_ssl_certificate_key certs/<SSL Client Certificate>.key;
}
}
এবং পরীক্ষা / পুনরায় আরম্ভ
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
service nginx restart
nginx stop/waiting
nginx start/running, process 8931
HTTP: // সম্মুখভাগ: 8080 / পরীক্ষা / phpinfo.php কাজ করে এবং
সার্ভার শংসাপত্রের জন্য SSL_SERVER_S_DN_CN প্রদর্শিত হবে এবং ক্লায়েন্ট শংসাপত্রের জন্য SSL_CLIENT_S_DN_CN প্রদর্শিত হবে
সুতরাং এখন আমরা যেমন চাওয়া হিসাবে কাজ পেয়েছিলাম।
দয়া করে বাগ https://trac.nginx.org/nginx/ticket/872#ticket নোট করুন