curl SSL, TLS ও প্রক্সি কনফিগারেশন গাইড

curl-এ HTTPS সার্টিফিকেট, TLS সংস্করণ, প্রক্সি এবং কাস্টম DNS রেজোলিউশন কনফিগার করা নিরাপদ API যোগাযোগ, CI/CD পাইপলাইন এবং নেটওয়ার্ক সমস্যা ডিবাগিংয়ের জন্য অপরিহার্য। এই গাইড প্রতিটি SSL, TLS, প্রক্সি এবং নেটওয়ার্ক ফ্ল্যাগ কভার করে — লোকাল ডেভেলপমেন্টের জন্য -k দিয়ে সার্টিফিকেট চেক নিষ্ক্রিয় করা থেকে শুরু করে --cert দিয়ে mutual TLS সেটআপ এবং SOCKS5 প্রক্সির মাধ্যমে ট্রাফিক রাউটিং পর্যন্ত। প্রতিটি অপশনে একটি স্পষ্ট ব্যাখ্যা, নিরাপত্তা বিবেচনা এবং কপি করার জন্য প্রস্তুত উদাহরণ রয়েছে।

SSL ও প্রক্সি ফ্ল্যাগ দ্রুত রেফারেন্স

-kSSL/TLS

অনিরাপদ সংযোগ অনুমতি দিন — সমস্ত SSL যাচাই এড়িয়ে যান

--cacertSSL/TLS

নির্দিষ্ট CA বান্ডলের বিরুদ্ধে সার্ভার সার্টিফিকেট যাচাই করুন

--certSSL/TLS

mutual TLS প্রমাণীকরণের জন্য ক্লায়েন্ট সার্টিফিকেট প্রদান করুন

--keySSL/TLS

ক্লায়েন্ট সার্টিফিকেটের জন্য প্রাইভেট কী ফাইল প্রদান করুন

--tlsv1.2SSL/TLS

সংযোগের জন্য TLS সংস্করণ 1.2 বা উচ্চতর ব্যবহার করুন

--tlsv1.3SSL/TLS

সংযোগের জন্য TLS সংস্করণ 1.3 বা উচ্চতর ব্যবহার করুন

--ssl-reqdSSL/TLS

সংযোগের জন্য SSL/TLS আবশ্যক (উপলভ্য না থাকলে ব্যর্থ)

--ciphersSSL/TLS

সংযোগের জন্য কোন SSL সাইফার ব্যবহার করতে হবে তা নির্দিষ্ট করুন

--cert-typeSSL/TLS

ক্লায়েন্ট সার্টিফিকেটের ধরন নির্দিষ্ট করুন (PEM, DER, ENG, P12)

--pinnedpubkeySSL/TLS

সার্ভারের পাবলিক কী পিন ও যাচাই করুন (HPKP-স্টাইল)

-xপ্রক্সি

নির্দিষ্ট প্রক্সি সার্ভারের মাধ্যমে সমস্ত ট্রাফিক রাউট করুন

--socks5প্রক্সি

SOCKS5 প্রক্সির মাধ্যমে সংযোগ রাউট করুন

--proxy-userপ্রক্সি

প্রক্সি সার্ভারের জন্য username:password প্রদান করুন

--noproxyপ্রক্সি

প্রক্সির মধ্য দিয়ে যাওয়া উচিত নয় এমন হোস্টের তালিকা

--socks5-hostnameপ্রক্সি

প্রক্সির মাধ্যমে DNS রেজোলিউশনসহ SOCKS5 প্রক্সি

--proxy-cacertপ্রক্সি

HTTPS প্রক্সি নিজে যাচাই করার জন্য CA সার্টিফিকেট

--resolveনেটওয়ার্ক

নির্দিষ্ট host:port জোড়াকে কাস্টম IP ঠিকানায় ম্যাপ করুন

--connect-toনেটওয়ার্ক

URL যা নির্দিষ্ট করে তার চেয়ে ভিন্ন host:port-এ সংযোগ করুন

--local-portনেটওয়ার্ক

সংযোগের জন্য স্থানীয় পোর্ট নম্বর বা রেঞ্জ সেট করুন

--interfaceনেটওয়ার্ক

নির্দিষ্ট নেটওয়ার্ক ইন্টারফেসে সংযোগ বাইন্ড করুন

--dns-serversনেটওয়ার্ক

সিস্টেম ডিফল্টের পরিবর্তে কাস্টম 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/data

curl --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/secure

curl --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/secure

curl --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-reqd

সংযোগের জন্য SSL/TLS আবশ্যক (উপলভ্য না থাকলে ব্যর্থ)

--ciphers

সংযোগের জন্য কোন SSL সাইফার ব্যবহার করতে হবে তা নির্দিষ্ট করুন

--cert-type

ক্লায়েন্ট সার্টিফিকেটের ধরন নির্দিষ্ট করুন (PEM, DER, ENG, P12)

--pinnedpubkey

সার্ভারের পাবলিক কী পিন ও যাচাই করুন (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/data

curl --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/data

curl --proxy-user: প্রক্সি প্রমাণীকরণ

এটি কী করে
--proxy-user (বা -U) ফ্ল্যাগ প্রক্সি সার্ভারে প্রমাণীকরণ তথ্য পাঠায়। ফরম্যাট হলো user:password। এটি সার্ভার প্রমাণীকরণ (-u) থেকে আলাদা।
কখন ব্যবহার করবেন
প্রক্সি সার্ভার প্রমাণীকরণ দাবি করলে প্রয়োজন — কর্পোরেট ও এন্টারপ্রাইজ নেটওয়ার্ক পরিবেশে সাধারণ। তথ্য প্রক্সিতে পাঠানো হয়, টার্গেট সার্ভারে নয়।
$ curl -x http://proxy.corp.com:3128 -U user:pass https://external-api.com/data

curl --noproxy: নির্দিষ্ট হোস্টের জন্য প্রক্সি বাইপাস

এটি কী করে
--noproxy ফ্ল্যাগ কমা-বিভক্ত হোস্ট, ডোমেইন বা IP ঠিকানার তালিকা নির্দিষ্ট করে যেগুলো প্রক্সি বাইপাস করে সরাসরি সংযোগ করবে। ওয়াইল্ডকার্ড সমর্থন করে: *.example.com সমস্ত সাবডোমেইন মেলায়।
কখন ব্যবহার করবেন
localhost, অভ্যন্তরীণ পরিষেবা বা নির্দিষ্ট ডোমেইন প্রক্সি থেকে বাদ দিতে ব্যবহার করুন। এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে গ্লোবালি প্রক্সি সেট থাকলে কিন্তু কিছু হোস্টের (লোকাল সার্ভিস) সরাসরি অ্যাক্সেস দরকার হলে এটি গুরুত্বপূর্ণ। সমস্ত হোস্টের জন্য প্রক্সি বাইপাস করতে * ব্যবহার করুন।
$ curl -x http://proxy:8080 --noproxy "localhost,127.0.0.1,*.internal.com" https://localhost:3000/api

অতিরিক্ত প্রক্সি অপশন

--socks5-hostname

প্রক্সির মাধ্যমে DNS রেজোলিউশনসহ SOCKS5 প্রক্সি

--proxy-cacert

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/health

curl --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

অতিরিক্ত নেটওয়ার্ক অপশন

--local-port

সংযোগের জন্য স্থানীয় পোর্ট নম্বর বা রেঞ্জ সেট করুন

--interface

নির্দিষ্ট নেটওয়ার্ক ইন্টারফেসে সংযোগ বাইন্ড করুন

--dns-servers

সিস্টেম ডিফল্টের পরিবর্তে কাস্টম 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/status

Mutual 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/health

SSH টানেলের মাধ্যমে SOCKS5 প্রক্সি

ssh -D দিয়ে SOCKS5 প্রক্সি তৈরি করুন এবং --socks5 ব্যবহার করে curl ট্রাফিক এর মাধ্যমে রাউট করুন। bastion হোস্টের মাধ্যমে অভ্যন্তরীণ পরিষেবায় অ্যাক্সেসের জন্য দরকারী।

$ curl --socks5 localhost:1080 https://internal-api.example.com/status

curl 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_proxyhttps_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 ব্যবহার করুন।