curl SSL, TLS ও প্রক্সি কনফিগারেশন গাইড
curl-এ HTTPS সার্টিফিকেট, TLS সংস্করণ, প্রক্সি এবং কাস্টম DNS রেজোলিউশন কনফিগার করা নিরাপদ API যোগাযোগ, CI/CD পাইপলাইন এবং নেটওয়ার্ক সমস্যা ডিবাগিংয়ের জন্য অপরিহার্য। এই গাইড প্রতিটি SSL, TLS, প্রক্সি এবং নেটওয়ার্ক ফ্ল্যাগ কভার করে — লোকাল ডেভেলপমেন্টের জন্য -k দিয়ে সার্টিফিকেট চেক নিষ্ক্রিয় করা থেকে শুরু করে --cert দিয়ে mutual TLS সেটআপ এবং SOCKS5 প্রক্সির মাধ্যমে ট্রাফিক রাউটিং পর্যন্ত। প্রতিটি অপশনে একটি স্পষ্ট ব্যাখ্যা, নিরাপত্তা বিবেচনা এবং কপি করার জন্য প্রস্তুত উদাহরণ রয়েছে।
SSL ও প্রক্সি ফ্ল্যাগ দ্রুত রেফারেন্স
অনিরাপদ সংযোগ অনুমতি দিন — সমস্ত SSL যাচাই এড়িয়ে যান
নির্দিষ্ট CA বান্ডলের বিরুদ্ধে সার্ভার সার্টিফিকেট যাচাই করুন
mutual TLS প্রমাণীকরণের জন্য ক্লায়েন্ট সার্টিফিকেট প্রদান করুন
ক্লায়েন্ট সার্টিফিকেটের জন্য প্রাইভেট কী ফাইল প্রদান করুন
সংযোগের জন্য TLS সংস্করণ 1.2 বা উচ্চতর ব্যবহার করুন
সংযোগের জন্য TLS সংস্করণ 1.3 বা উচ্চতর ব্যবহার করুন
সংযোগের জন্য SSL/TLS আবশ্যক (উপলভ্য না থাকলে ব্যর্থ)
সংযোগের জন্য কোন SSL সাইফার ব্যবহার করতে হবে তা নির্দিষ্ট করুন
ক্লায়েন্ট সার্টিফিকেটের ধরন নির্দিষ্ট করুন (PEM, DER, ENG, P12)
সার্ভারের পাবলিক কী পিন ও যাচাই করুন (HPKP-স্টাইল)
নির্দিষ্ট প্রক্সি সার্ভারের মাধ্যমে সমস্ত ট্রাফিক রাউট করুন
SOCKS5 প্রক্সির মাধ্যমে সংযোগ রাউট করুন
প্রক্সি সার্ভারের জন্য username:password প্রদান করুন
প্রক্সির মধ্য দিয়ে যাওয়া উচিত নয় এমন হোস্টের তালিকা
প্রক্সির মাধ্যমে DNS রেজোলিউশনসহ SOCKS5 প্রক্সি
HTTPS প্রক্সি নিজে যাচাই করার জন্য CA সার্টিফিকেট
নির্দিষ্ট host:port জোড়াকে কাস্টম IP ঠিকানায় ম্যাপ করুন
URL যা নির্দিষ্ট করে তার চেয়ে ভিন্ন host:port-এ সংযোগ করুন
সংযোগের জন্য স্থানীয় পোর্ট নম্বর বা রেঞ্জ সেট করুন
নির্দিষ্ট নেটওয়ার্ক ইন্টারফেসে সংযোগ বাইন্ড করুন
সিস্টেম ডিফল্টের পরিবর্তে কাস্টম DNS সার্ভার ব্যবহার করুন (c-ares)
curl -k: SSL সার্টিফিকেট ত্রুটি উপেক্ষা
- এটি কী করে
-k(বা--insecure) ফ্ল্যাগ সমস্ত SSL/TLS সার্টিফিকেট যাচাই নিষ্ক্রিয় করে। curl চেক করবে না যে সার্ভার সার্টিফিকেট বিশ্বস্ত CA দ্বারা স্বাক্ষরিত কিনা, হোস্টনেম মেলে কিনা, বা সার্টিফিকেটের মেয়াদ শেষ হয়েছে কিনা।- কখন ব্যবহার করবেন
- শুধুমাত্র সেল্ফ-সাইনড সার্টিফিকেটসহ লোকাল ডেভেলপমেন্ট বা টেস্টিং এনভায়রনমেন্টের জন্য শুধুমাত্র ব্যবহার করুন। স্টেজিং/প্রোডাকশনের জন্য প্রকৃত CA সার্টিফিকেটসহ
--cacertব্যবহার করুন — এটি আরও নিরাপদ ও স্পষ্ট।
$ curl -k https://localhost:8443/api/healthকখনোই প্রোডাকশন স্ক্রিপ্ট বা CI/CD পাইপলাইনে -k ব্যবহার করবেন না। এটি সমস্ত সার্টিফিকেট যাচাই নিষ্ক্রিয় করে, আপনার সংযোগকে ম্যান-ইন-দ্য-মিডল আক্রমণের জন্য ঝুঁকিপূর্ণ করে। নির্দিষ্ট CA-তে বিশ্বাস করতে --cacert ব্যবহার করুন।
curl --cacert: কাস্টম CA সার্টিফিকেট ব্যবহার
- এটি কী করে
--cacertফ্ল্যাগ curl-কে সিস্টেমের ডিফল্ট ট্রাস্ট স্টোরের পরিবর্তে PEM ফরম্যাটে একটি নির্দিষ্ট CA (Certificate Authority) বান্ডল ফাইলের বিরুদ্ধে সার্ভারের SSL সার্টিফিকেট যাচাই করতে বলে।- কখন ব্যবহার করবেন
- আপনার সার্ভার যখন সিস্টেম ট্রাস্ট স্টোরে নেই এমন প্রাইভেট বা অভ্যন্তরীণ CA দ্বারা স্বাক্ষরিত সার্টিফিকেট ব্যবহার করে তখন ব্যবহার করুন। কর্পোরেট এনভায়রনমেন্ট, Kubernetes ক্লাস্টার এবং অভ্যন্তরীণ PKI সহ Docker সেটআপে এটি সাধারণ।
$ curl --cacert /path/to/corporate-ca.pem https://internal-api.example.com/datacurl --cert: ক্লায়েন্ট সার্টিফিকেট (Mutual TLS)
- এটি কী করে
--certফ্ল্যাগ mutual TLS (mTLS)-এর জন্য ক্লায়েন্ট-সাইড সার্টিফিকেট প্রদান করে। mTLS-এ সার্ভার ও ক্লায়েন্ট উভয়ই পরস্পরের পরিচয় যাচাই করতে সার্টিফিকেট উপস্থাপন করে। সার্টিফিকেট ফাইল PEM বা PKCS#12 ফরম্যাটে হওয়া উচিত।- কখন ব্যবহার করবেন
- সার্ভার যখন ক্লায়েন্ট সার্টিফিকেট প্রমাণীকরণ দাবি করে তখন প্রয়োজন — ব্যাংকিং API, সরকারি পরিষেবা, IoT ডিভাইস যোগাযোগ এবং জিরো-ট্রাস্ট আর্কিটেকচারে সাধারণ। কী সার্ট ফাইলে এম্বেড না থাকলে সবসময়
--key-এর সাথে জোড়া করুন।
$ curl --cert client.pem --key client-key.pem https://mtls-api.example.com/securecurl --key: ক্লায়েন্ট সার্টিফিকেট প্রাইভেট কী
- এটি কী করে
--keyফ্ল্যাগ--certদ্বারা প্রদত্ত ক্লায়েন্ট সার্টিফিকেটের সাথে জোড়া হওয়া প্রাইভেট কী ফাইল নির্দিষ্ট করে। কী সার্টিফিকেটের সাথে মিলতে হবে। কী পাসওয়ার্ড-সুরক্ষিত হলে curl পাসফ্রেজ চাইবে (বা--passব্যবহার করুন)।- কখন ব্যবহার করবেন
- সবসময়
--cert-এর সাথে ব্যবহার করুন। প্রাইভেট কী ইতিমধ্যে সার্টিফিকেট ফাইলে এম্বেড থাকলে (PKCS#12 / .p12 ফাইলে সাধারণ), আপনি--keyবাদ দিতে পারেন।
$ curl --cert client.pem --key client-key.pem --cacert server-ca.pem https://api.example.com/securecurl --tlsv1.2: ন্যূনতম TLS 1.2 বাধ্যতামূলক
- এটি কী করে
--tlsv1.2ফ্ল্যাগ curl-কে SSL/TLS হ্যান্ডশেকের জন্য ন্যূনতম গ্রহণযোগ্য সংস্করণ হিসেবে TLS 1.2 ব্যবহার করতে বাধ্য করে। পুরোনো প্রোটোকল (TLS 1.0, 1.1, SSLv3) প্রত্যাখ্যান করা হয়।- কখন ব্যবহার করবেন
- ন্যূনতম নিরাপত্তা মান প্রয়োগ করতে ব্যবহার করুন। TLS 1.2 PCI-DSS সম্মতির জন্য প্রয়োজন এবং সমস্ত আধুনিক সার্ভার সমর্থন করে। বেশিরভাগ আধুনিক curl বিল্ড ইতিমধ্যে ডিফল্টভাবে TLS 1.2+ ব্যবহার করে, কিন্তু এই ফ্ল্যাগ এটি স্পষ্ট করে।
$ curl --tlsv1.2 -v https://secure.example.com/api 2>&1 | grep 'SSL connection'curl --tlsv1.3: ন্যূনতম TLS 1.3 বাধ্যতামূলক
- এটি কী করে
--tlsv1.3ফ্ল্যাগ curl-কে TLS 1.3 ব্যবহার করতে বাধ্য করে — সবচেয়ে দ্রুত ও সবচেয়ে নিরাপদ TLS সংস্করণ। TLS 1.3 হ্যান্ডশেকে অতিরিক্ত রাউন্ড-ট্রিপ বাদ দেয় (0-RTT সমর্থন) এবং সমস্ত পুরোনো সাইফার স্যুট সরিয়ে দেয়।- কখন ব্যবহার করবেন
- সার্ভার TLS 1.3 সমর্থন করে জানলে এবং সেরা পারফরম্যান্স ও নিরাপত্তা চাইলে ব্যবহার করুন। দ্রষ্টব্য: TLS 1.3-এর জন্য OpenSSL 1.1.1+ বা সামঞ্জস্যপূর্ণ TLS লাইব্রেরি প্রয়োজন। সব সার্ভার এখনও এটি সমর্থন করে না।
$ curl --tlsv1.3 https://modern-api.example.com/dataঅতিরিক্ত SSL/TLS অপশন
সংযোগের জন্য SSL/TLS আবশ্যক (উপলভ্য না থাকলে ব্যর্থ)
সংযোগের জন্য কোন SSL সাইফার ব্যবহার করতে হবে তা নির্দিষ্ট করুন
ক্লায়েন্ট সার্টিফিকেটের ধরন নির্দিষ্ট করুন (PEM, DER, ENG, P12)
সার্ভারের পাবলিক কী পিন ও যাচাই করুন (HPKP-স্টাইল)
curl -x: HTTP/HTTPS প্রক্সি ব্যবহার
- এটি কী করে
-x(বা--proxy) ফ্ল্যাগ নির্দিষ্ট প্রক্সি সার্ভারের মাধ্যমে সমস্ত curl ট্রাফিক রাউট করে। ফরম্যাট হলো[protocol://]host[:port]। সমর্থিত প্রক্সি প্রোটোকল: HTTP, HTTPS, SOCKS4, SOCKS5।- কখন ব্যবহার করবেন
- কর্পোরেট প্রক্সি সার্ভার, Fiddler, Charles বা mitmproxy-র মতো টুল দিয়ে ডিবাগিং, ভৌগোলিক সীমাবদ্ধতা পরীক্ষা, বা সরাসরি ইন্টারনেট অ্যাক্সেস না থাকলে ব্যবহার করুন। এর পরিবর্তে
http_proxy/https_proxyএনভায়রনমেন্ট ভেরিয়েবলও সেট করতে পারেন।
$ curl -x http://proxy.example.com:8080 https://api.example.com/datacurl --socks5: SOCKS5 প্রক্সি ব্যবহার
- এটি কী করে
--socks5ফ্ল্যাগ curl-কে TCP সংযোগের জন্য SOCKS5 প্রক্সি ব্যবহার করতে বলে। HTTP প্রক্সির বিপরীতে, SOCKS5 TCP স্তরে কাজ করে এবং যেকোনো প্রোটোকল হ্যান্ডেল করতে পারে — শুধু HTTP নয়। ডিফল্টভাবে DNS রেজোলিউশন স্থানীয়ভাবে হয়; প্রক্সির মাধ্যমে DNS রেজলভ করতে--socks5-hostnameব্যবহার করুন।- কখন ব্যবহার করবেন
- SSH টানেল (
ssh -D), Tor নেটওয়ার্ক অ্যাক্সেস, বা প্রক্সিকে নন-HTTP প্রোটোকল হ্যান্ডেল করতে হলে ব্যবহার করুন। SOCKS5 UDP সমর্থন করে এবং ঐচ্ছিকভাবে DNS হ্যান্ডেল করতে পারে — HTTP প্রক্সির চেয়ে আরও নমনীয়।
$ curl --socks5 localhost:1080 https://api.example.com/datacurl --proxy-user: প্রক্সি প্রমাণীকরণ
- এটি কী করে
--proxy-user(বা-U) ফ্ল্যাগ প্রক্সি সার্ভারে প্রমাণীকরণ তথ্য পাঠায়। ফরম্যাট হলোuser:password। এটি সার্ভার প্রমাণীকরণ (-u) থেকে আলাদা।- কখন ব্যবহার করবেন
- প্রক্সি সার্ভার প্রমাণীকরণ দাবি করলে প্রয়োজন — কর্পোরেট ও এন্টারপ্রাইজ নেটওয়ার্ক পরিবেশে সাধারণ। তথ্য প্রক্সিতে পাঠানো হয়, টার্গেট সার্ভারে নয়।
$ curl -x http://proxy.corp.com:3128 -U user:pass https://external-api.com/datacurl --noproxy: নির্দিষ্ট হোস্টের জন্য প্রক্সি বাইপাস
- এটি কী করে
--noproxyফ্ল্যাগ কমা-বিভক্ত হোস্ট, ডোমেইন বা IP ঠিকানার তালিকা নির্দিষ্ট করে যেগুলো প্রক্সি বাইপাস করে সরাসরি সংযোগ করবে। ওয়াইল্ডকার্ড সমর্থন করে:*.example.comসমস্ত সাবডোমেইন মেলায়।- কখন ব্যবহার করবেন
- localhost, অভ্যন্তরীণ পরিষেবা বা নির্দিষ্ট ডোমেইন প্রক্সি থেকে বাদ দিতে ব্যবহার করুন। এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে গ্লোবালি প্রক্সি সেট থাকলে কিন্তু কিছু হোস্টের (লোকাল সার্ভিস) সরাসরি অ্যাক্সেস দরকার হলে এটি গুরুত্বপূর্ণ। সমস্ত হোস্টের জন্য প্রক্সি বাইপাস করতে
*ব্যবহার করুন।
$ curl -x http://proxy:8080 --noproxy "localhost,127.0.0.1,*.internal.com" https://localhost:3000/apiঅতিরিক্ত প্রক্সি অপশন
প্রক্সির মাধ্যমে DNS রেজোলিউশনসহ SOCKS5 প্রক্সি
HTTPS প্রক্সি নিজে যাচাই করার জন্য CA সার্টিফিকেট
curl --resolve: কাস্টম DNS রেজোলিউশন
- এটি কী করে
--resolveফ্ল্যাগ নির্দিষ্টhost:portজোড়ার জন্য কাস্টম IP ঠিকানা প্রদান করে, DNS লুকআপ সম্পূর্ণভাবে বাইপাস করে। ফরম্যাট হলোhost:port:address। একাধিক--resolveএন্ট্রি প্রদান করা যায়।- কখন ব্যবহার করবেন
- DNS প্রচারের আগে পরীক্ষা, লোড ব্যালান্সারের পিছনে নির্দিষ্ট ব্যাকেন্ড যাচাই, বা SSL সার্টিফিকেট যাচাইয়ের জন্য আসল হোস্টনেম দরকার এমন লোকাল ডেভেলপমেন্টের জন্য অপরিহার্য।
/etc/hostsসম্পাদনার বিপরীতে, এটি প্রতি-অনুরোধ ও পোর্ট-নির্দিষ্ট।
$ curl --resolve api.example.com:443:127.0.0.1 https://api.example.com/healthcurl --connect-to: ভিন্ন হোস্টে সংযোগ পুনঃনির্দেশ
- এটি কী করে
--connect-toফ্ল্যাগ HTTP অনুরোধের জন্য মূল URL (Hostহেডার ও SNI সহ) বজায় রেখে TCP সংযোগ ভিন্নhost:portজোড়ায় পুনঃনির্দেশ করে। ফরম্যাট:HOST1:PORT1:HOST2:PORT2।- কখন ব্যবহার করবেন
- DNS বা
/etc/hostsপরিবর্তন না করে লোড ব্যালান্সারের পিছনে নির্দিষ্ট ব্যাকেন্ড সার্ভার পরীক্ষা করতে ব্যবহার করুন।--resolve-এর বিপরীতে, এটি host:port-কে host:port-এ ম্যাপ করে (IP-তে নয়), যা টার্গেটেরও হোস্টনেম থাকলে দরকারী।
$ curl --connect-to api.example.com:443:backend1.internal:8443 https://api.example.com/healthঅতিরিক্ত নেটওয়ার্ক অপশন
সংযোগের জন্য স্থানীয় পোর্ট নম্বর বা রেঞ্জ সেট করুন
নির্দিষ্ট নেটওয়ার্ক ইন্টারফেসে সংযোগ বাইন্ড করুন
সিস্টেম ডিফল্টের পরিবর্তে কাস্টম DNS সার্ভার ব্যবহার করুন (c-ares)
বাস্তব SSL ও প্রক্সি পরিস্থিতি
এই উদাহরণগুলো ডেভেলপমেন্ট, CI/CD এবং প্রোডাকশন পরিবেশে সাধারণ নিরাপত্তা ও নেটওয়ার্কিং কাজ সামলাতে একাধিক ফ্ল্যাগ একত্রিত করে।
Localhost-এ HTTPS পরীক্ষা
সেল্ফ-সাইনড সার্টিফিকেটসহ লোকালি ডেভেলপ করার সময় --resolve-কে --cacert-এর সাথে (বা দ্রুত পরীক্ষার জন্য -k) একত্রিত করুন। এতে hosts ফাইল পরিবর্তন না করে সঠিক SSL/SNI-র জন্য আসল হোস্টনেম ব্যবহার করা যায়।
$ curl --resolve myapp.local:443:127.0.0.1 --cacert local-ca.pem https://myapp.local/api/statusMutual TLS (ক্লায়েন্ট সার্টিফিকেট প্রমাণীকরণ)
কিছু API-তে সার্ভার ও ক্লায়েন্ট উভয়কে সার্টিফিকেট উপস্থাপন করতে হয়। সম্পূর্ণ যাচাইকৃত দ্বিমুখী TLS সংযোগ স্থাপন করতে --cert, --key এবং --cacert প্রদান করুন।
$ curl --cert client.pem --key client-key.pem --cacert server-ca.pem https://mtls-api.example.com/dataপ্রমাণীকরণসহ কর্পোরেট প্রক্সি
বাধ্যতামূলক প্রক্সি সার্ভারসহ কর্পোরেট নেটওয়ার্কে প্রক্সি তথ্যের জন্য -x-কে -U-এর সাথে একত্রিত করুন। অভ্যন্তরীণ পরিষেবা বাদ দিতে --noproxy যোগ করুন।
$ curl -x http://proxy.corp.com:3128 -U user:pass --noproxy "*.internal.corp" https://external-api.com/dataঅভ্যন্তরীণ CA সহ Docker কন্টেইনার
Docker-এ পরিষেবাগুলো অভ্যন্তরীণ CA-র সার্টিফিকেট ব্যবহার করলে কন্টেইনারে CA সার্টিফিকেট মাউন্ট করুন এবং --cacert দিয়ে রেফারেন্স করুন। এটি -k-এর চেয়ে নিরাপদ কারণ এটি এখনও সার্টিফিকেট চেইন যাচাই করে।
$ curl --cacert /etc/ssl/certs/internal-ca.crt https://service.docker.internal:8443/healthSSH টানেলের মাধ্যমে SOCKS5 প্রক্সি
ssh -D দিয়ে SOCKS5 প্রক্সি তৈরি করুন এবং --socks5 ব্যবহার করে curl ট্রাফিক এর মাধ্যমে রাউট করুন। bastion হোস্টের মাধ্যমে অভ্যন্তরীণ পরিষেবায় অ্যাক্সেসের জন্য দরকারী।
$ curl --socks5 localhost:1080 https://internal-api.example.com/statuscurl SSL ও প্রক্সি সম্পর্কে সচরাচর জিজ্ঞাসিত প্রশ্ন
curl-এ SSL সার্টিফিকেট যাচাই কীভাবে এড়িয়ে যাব?
curl -k URL বা curl --insecure URL ব্যবহার করুন। এটি সমস্ত সার্টিফিকেট চেক নিষ্ক্রিয় করে — মেয়াদ শেষ, হোস্টনেম অমিল, অবিশ্বস্ত CA। শুধু লোকাল ডেভেলপমেন্টের জন্য শুধুমাত্র ব্যবহার করুন। প্রোডাকশনের জন্য প্রকৃত CA সার্টিফিকেটসহ --cacert ব্যবহার করুন।
curl-কে কীভাবে সেল্ফ-সাইনড সার্টিফিকেটে বিশ্বাস করাব?
আপনার সেল্ফ-সাইনড সার্ট স্বাক্ষরকারী CA সার্টিফিকেট নির্দিষ্ট করতে curl --cacert /path/to/ca.pem URL ব্যবহার করুন। এটি -k-এর চেয়ে নিরাপদ কারণ এটি এখনও সার্টিফিকেট চেইন যাচাই করে — শুধু আপনার নির্দিষ্ট CA-তে বিশ্বাস করে।
curl কোন TLS সংস্করণ ব্যবহার করছে তা কীভাবে চেক করব?
curl -v URL চালান এবং বিস্তারিত আউটপুটে * SSL connection using TLSv1.x / CipherSuite লাইনটি দেখুন। নির্দিষ্ট সংস্করণ বাধ্য করতে --tlsv1.2 বা --tlsv1.3 ব্যবহার করুন।
mutual TLS (mTLS) কী এবং curl-এর সাথে কীভাবে ব্যবহার করব?
Mutual TLS-এ সার্ভার ও ক্লায়েন্ট উভয়কে সার্টিফিকেট উপস্থাপন করতে হয়। ব্যবহার করুন: curl --cert client.pem --key client-key.pem --cacert server-ca.pem URL। --cert/--key জোড়া ক্লায়েন্টকে প্রমাণীকরণ করে; --cacert সার্ভার যাচাই করে।
HTTP প্রক্সির মাধ্যমে curl কীভাবে ব্যবহার করব?
curl -x http://proxy:port URL ব্যবহার করুন। HTTPS প্রক্সির জন্য: curl -x https://proxy:port URL। বিকল্পভাবে http_proxy ও https_proxy এনভায়রনমেন্ট ভেরিয়েবল সেট করুন — curl স্বয়ংক্রিয়ভাবে সেগুলো গ্রহণ করে।
SOCKS5 প্রক্সির সাথে curl কীভাবে ব্যবহার করব?
স্থানীয় DNS রেজোলিউশনের জন্য curl --socks5 host:port URL, বা প্রক্সির মাধ্যমে DNS রেজলভ করতে curl --socks5-hostname host:port URL ব্যবহার করুন (গোপনীয়তা/Tor-এর জন্য গুরুত্বপূর্ণ)। SSH টানেলের উদাহরণ: ssh -D 1080 user@bastion, তারপর curl --socks5 localhost:1080 URL।
curl-এ প্রক্সি সার্ভারে কীভাবে প্রমাণীকরণ করব?
curl -x http://proxy:port -U user:password URL ব্যবহার করুন। -U (বা --proxy-user) ফ্ল্যাগ প্রক্সিতে তথ্য পাঠায়। এটি -u থেকে আলাদা, যা টার্গেট সার্ভারে প্রমাণীকরণ করে।
curl-এ নির্দিষ্ট হোস্ট প্রক্সি থেকে কীভাবে বাদ দেব?
--noproxy "localhost,127.0.0.1,*.internal.com" ব্যবহার করুন বা NO_PROXY এনভায়রনমেন্ট ভেরিয়েবল সেট করুন। ওয়াইল্ডকার্ড সমর্থন করে (*.example.com)। একটি অনুরোধের জন্য সম্পূর্ণ প্রক্সি বাইপাস করতে --noproxy "*" ব্যবহার করুন।
curl দিয়ে localhost-এ HTTPS কীভাবে পরীক্ষা করব?
দ্রুত পরীক্ষার জন্য: curl -k https://localhost:8443/। সঠিক যাচাইয়ের জন্য: curl --resolve myapp.local:443:127.0.0.1 --cacert local-ca.pem https://myapp.local/। --resolve পদ্ধতি সার্টিফিকেটের হোস্টনেম সঠিকভাবে মেলাতে দেয়।
curl-এ নির্দিষ্ট হোস্টের জন্য DNS রেজোলিউশন কীভাবে ওভাররাইড করব?
curl --resolve host:port:IP URL ব্যবহার করুন। উদাহরণ: curl --resolve api.example.com:443:192.168.1.100 https://api.example.com/। এটি শুধু সেই host:port জোড়ার জন্য DNS বাইপাস করে — /etc/hosts সম্পাদনার দরকার নেই।
curl-এ 'SSL certificate problem: certificate has expired' কীভাবে ঠিক করব?
সার্ভারের সার্টিফিকেটের মেয়াদ শেষ হয়েছে। সমাধান: (1) সার্ভারে সার্টিফিকেট নবায়ন করুন, (2) CA বান্ডল আপডেট করুন: curl --cacert /path/to/updated-ca.pem URL, (3) শুধু পরীক্ষার জন্য: curl -k URL। মেয়াদ চেক করুন: curl -v URL 2>&1 | grep expire।
প্রোডাকশনে curl --insecure (-k) ব্যবহার করা কি নিরাপদ?
না। -k ফ্ল্যাগ সমস্ত সার্টিফিকেট যাচাই নিষ্ক্রিয় করে — মেয়াদ, হোস্টনেম এবং ট্রাস্ট চেইন। এটি আপনার সংযোগকে ম্যান-ইন-দ্য-মিডল আক্রমণের জন্য ঝুঁকিপূর্ণ করে। প্রোডাকশন ও CI/CD পাইপলাইনে সবসময় নির্দিষ্ট CA সার্টিফিকেটসহ --cacert ব্যবহার করুন।