কর্পোরেট প্রক্সি .pac এর পিছনে এনপিএম ব্যবহার করা


158

আমাকে এনপিএমের মাধ্যমে বেশ কয়েকটি প্যাকেজ ডাউনলোড করতে হবে তবে আমাদের কর্পোরেট প্রক্সি কনফিগারেশন একটি .pac ফাইল (আমি উইন্ডোতে আছি) is

আমি ইতিমধ্যে চেষ্টা করেছি

npm config set proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac
npm config set https-proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac

অথবা

npm config set proxy http://1.2.3.4:8181/proxy.pac
npm config set https-proxy http://1.2.3.4:8181/proxy.pac

কিন্তু এটি কাজ করে না ...

যেকোনো পরামর্শ? ধন্যবাদ



8
আমি মনে করি না এই প্রশ্নটি সদৃশ, প্যাক স্ক্রিপ্টগুলিতে লক্ষ্য আইপি / হোস্ট ঠিকানার উপর নির্ভর করে একাধিক প্রক্সি ঠিকানা থাকতে পারে, যখন ডাবটি কেবলমাত্র 1 প্রক্সি ঠিকানার ঠিকানা দেয় - পর্যালোচনা থেকে
ফেরিবিগ

1
একক উত্তর নয় কীভাবে প্যাক স্ক্রিপ্টগুলি ব্যবহার করতে হয় তাতে লক্ষ্য আইপি / হোস্ট ঠিকানার উপর নির্ভর করে একাধিক প্রক্সি ঠিকানা থাকতে পারে। কেউ দয়া করে সাহায্য করতে পারেন।
পার্থ সারথী ঘোষ

2
আমার পক্ষে এটির proxy.pacথেকে প্রক্সি ঠিকানা পাওয়ার জন্য ফাইলটি খুলতে সহায়তা করেছিল । (আমার ক্ষেত্রে আমাকে 8080 এ পোর্টটি স্যুইচ করতে হয়েছিল)।
যাজক

@ পার্থসারথী ঘোষ আপনি ঠিক বলেছেন, উত্তরের কোনওটিই আসলে পিএসি স্ক্রিপ্টগুলি কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করেনি, সুতরাং আমি আরও একটি উত্তর যুক্ত করেছি যা এটি সম্বোধন করে: stackoverflow.com/a/61811444 । এটা কয়েক বছর দেরী, কিন্তু কখনও ভাল চেয়ে ভাল দেরী?
ব্যবহারকারী 1031921

উত্তর:


204

আমার সবেমাত্র একটি খুব অনুরূপ সমস্যা হয়েছিল, যেখানে আমাদের প্রক্সি সার্ভারের পিছনে কাজ করার জন্য এনপিএম পেলাম না।

আমার ব্যবহারকারীর নামটি "ডোমেন \ ব্যবহারকারীর নাম" ফর্মের - প্রক্সি কনফিগারেশনের স্ল্যাশ সহ একটি ফরোয়ার্ড স্ল্যাশ উপস্থিত হতে পারে। সুতরাং এটি প্রবেশ করানো:

npm config set proxy "http://domain\username:password@servername:port/"

তারপরে এটি চালানো এটিকে npm config get proxyপ্রত্যাবর্তন করে: http: // ডোমেন / ব্যবহারকারীর নাম: পাসওয়ার্ড @ সার্ভারনেম: পোর্ট /

সুতরাং সমস্যার সমাধান করার জন্য আমি পরিবর্তে ইউআরএল ব্যাকস্ল্যাশ এনকোড করেছি, সুতরাং এটিতে প্রবেশ করানো হয়েছে:

npm config set proxy "http://domain%5Cusername:password@servername:port/"

এবং এটির সাথে প্রক্সি অ্যাক্সেস স্থির হয়েছিল।


5
এটি আপনার% 5C এর মূল অংশটি সি হিসাবে হারিয়ে যাচ্ছে .... দেখুন আমি এটির জন্য আপনাকে
sinisterrook

1
আমি সবেমাত্র কিছু জিনিস আপডেট করেছি এবং আমার প্রক্সি আবার কাজ করা বন্ধ করে দিয়েছে। দেখা গেল যে .npmrc ফাইলের "প্রক্সি" সেটিংসে (@ ওভিডিউ বুলিগান নীচে উল্লিখিত) এতে ব্যাকস্ল্যাশের জন্য% 5C রয়েছে তবে "https-প্রক্সি" তে কেবল "\" রয়েছে। এটি% 5 সি দ্বারাও পরিবর্তন করা সমস্যার সমাধান করে। আমার ধারণা, এনপিএম কনফিগারেশন সেট
স্টিভ রবার্টস

1
আমি প্রক্সি পিছনে এনপিএম কনফিগার করার চেষ্টা করছি, তবে এনপিএম কনফিগারেশন ব্যবহার করে একটি "পিং" করার একটি উপায় রয়েছে। কারণ আমার বিভ্রান্তিটি ভুল হলে আমার ব্যবহারকারী আমার কর্পোরেট ডোমেনে ব্লক হয়ে যাবে।
রিকার্ডো

3
আমার জন্য যা কাজ করেছে তা হ'ল প্রথমে রঙের পরিবেশগত পরিবর্তনগুলি পরিষ্কার করা LE HTTP_PROXY = সেট করুন এবং HTTPS_PROXY = সেট করুন
সিডওয়েল

4
যোগ করার পদ্ধতি strict-ssl=falseথেকে .npmrcকনফিগ একটি কর্পোরেট প্রক্সি পিছনে আমার জন্য মীমাংসিত ফাইল - নিকট থেকে উত্তর দেখুন @ Ovidiu-buligan এবং @ Karthikeyan-একটি
আলেকজান্ডার McFarlane

64

pacইন্টারনেট এক্সপ্লোরার ল্যান সেটিংসে ফাইলটির url সন্ধান করুন এবং কনফিগার করা URL থেকে প্যাক ফাইলটি ডাউনলোড করুন। প্যাক ফাইলটি একটি জাভাস্ক্রিপ্ট ফাইল যা একটি ফাংশন নামযুক্ত রয়েছেFindProxyForURL যা বিভিন্ন পরিস্থিতিতে বিভিন্ন প্রক্সি হোস্টকে দেয়।

সেই প্যাক ফাইলে কোনও হোস্টকে অনুসন্ধান করার চেষ্টা করুন যা আপনি সাধারণ ওয়েব ট্রাফিকের জন্য বলে মনে করেন এবং এটিকে .npmrc এ প্লাগ করুন C:\Users\<username>\.npmrc

proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

যদিও আপনি নিজের কর্পোরেট মেশিনে আপনার ডোমেন এবং ব্যবহারকারীর নাম দিয়ে লগইন করতে পারেন, তবুও এটি অত্যন্ত সম্ভব যে প্রক্সিটির জন্য ব্যবহারকারীর সক্রিয় ডিরেক্টরি ডোমেন নামটির প্রয়োজন নেই , কেবলমাত্র ব্যবহারকারীর নাম এবং পাসওয়ার্ড (যা আপনার সক্রিয় ডিরেক্টরি লগইনের চেয়ে পৃথক হতে পারে)

বিশেষ পাসওয়ার্ডের অক্ষরগুলি পালানোর সাথে সাথে বেড়াতে ভুলবেন না।


ধন্যবাদ। আমি .npmrc এ গিয়ে নেভিগেট করে সেটিংস পরিবর্তন করেছি। এটি কাজ করেছিল
arn-arn

54

আপনার .pacফাইলটি ডাউনলোড করুন। যে কোনও সম্পাদক এ এটি খুলুন এবং সন্ধান করুন PROXY = "PROXY X.X.X.X:80;। আপনার অনেকগুলি প্রক্সি থাকতে পারে, সেগুলির কোনওটি অনুলিপি করুন এবং নিম্নলিখিত টার্মিনাল কমান্ডগুলি চালনা করুন:

npm config set proxy http://X.X.X.X:80
npm config set https-proxy http://X.X.X.X:80

এখন আপনার যে কোনও প্যাকেজ ইনস্টল করতে সক্ষম হওয়া উচিত!


1
Https- প্রক্সি অংশের জন্য, আমাকে "... সেট করতে https-proxy = http: // ... করতে হবে" ... এর পরিবর্তে https-প্রক্সি http: // ... সেট করতে হয়েছিল হবে। শুধু আমার 0 .02।
নিক

ধন্যবাদ https- প্রক্সিটি http: // এ সেট করা একমাত্র কাজ যা কাজ করে; আমি বাশ থেকে http_proxy এবং https_proxy এনভায়রনমেন্ট ভেরিয়েবল আনসেট করার পরে!
অ্যালেক্স পুন্নেন

Https-proxy- এর জন্য আমি "https-proxy https: /.../" সেট করতে পারিনি, আমাকে "https-proxy http: // ..." সেট করতে হয়েছিল (https -> থেকে প্রক্সি তথ্য) http)
মঙ্গলবার

গিটারের জন্যও একই রকম হয়git config --global http.proxy http://X.X.X.X:80 git config --global https.proxy http://X.X.X.X:80
কোডের নাম জ্যাক

38

আমি এই সমস্যাটি এইভাবে সমাধান করেছি:

1) আমি এই আদেশটি চালাচ্ছি:

npm config set strict-ssl false

2) তারপরে HTTP- র পরিবর্তে এনএমপি সেট করুন, পরিবর্তে https:

npm config set registry "http://registry.npmjs.org/"

3) তারপরে আপনার প্যাকেজটি ইনস্টল করুন

npm install <package name>


2
শুধু যে বাতলান npm এর সেটিং প্রখর-SSL করার মিথ্যা একটি নিরাপত্তা বিষয়। পরিবর্তে সঠিকভাবে ca[]এনপিএম এ সম্পত্তি সেট আপ বিবেচনা করুন।
অ্যারন সি

26

@ স্টিভ রবার্টস উত্তরটি প্রসারিত করতে।

আমার ব্যবহারকারীর নামটি "ডোমেন \ ব্যবহারকারীর নাম" ফর্মের - প্রক্সি কনফিগারেশনের স্ল্যাশ সহ একটি ফরোয়ার্ড স্ল্যাশ উপস্থিত হতে পারে। সুতরাং এটি প্রবেশ করানো:

npm config set proxy "http://domain\username:password@servername:port/"

আমার ইউআরএলটিও আমার domain\userস্ট্রিং এনকোড করতে হয়েছিল , তবে আমার ইউজার নেমটির ভিতরে আমার একটি স্পেস রয়েছে তাই আমি +স্পেস ইউআরএল এনকোডিংয়ের জন্য একটি এনকোড রেখেছি তবে এটি ডাবল এনকোডযুক্ত হবে %2B(প্লাস চিহ্নের জন্য ইউআরএল এনকোডিং যা তবে ইউআরএল) একটি স্থান জন্য এনকোডিং হয়%20 ), সুতরাং এর পরিবর্তে আমাকে নিম্নলিখিতগুলি করতে হয়েছিল:

npm কমান্ড

// option one 
// it works for some packages
npm config set http_proxy "http://DOMAIN%5Cuser+name:password@x.x.x.x:port"
npm config set proxy "http://DOMAIN%5Cuser+name:password@x.x.x.x:port"

// option two
// it works best for me
// please notice that I actually used a space 
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://DOMAIN%5Cuser name:password@x.x.x.x:port"
npm config set proxy "http://DOMAIN%5Cuser name:password@x.x.x.x:port"

// option two (B) as of 2019-06-01
// no DOMAIN
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://user name:password@x.x.x.x:port"
npm config set proxy "http://user name:password@x.x.x.x:port"

সমস্যা সমাধানের জন্য এনএমপি কনফিগারেশন

আমি ব্যবহার npm config list উপরে উল্লিখিত পার্স করা মানগুলি পেতে করেছি এবং এটিই ডাবল এনকোডিং সম্পর্কে আমি জানতে পেরেছিলাম। রহস্যময়।

মূলত আপনাকে নিম্নলিখিত প্রয়োজনীয়তাগুলি বের করতে হবে:

  1. ইহা একটি DOMAINপ্রমাণীকরণের জন্য প্রয়োজনীয় স্ট্রিং
  2. আপনার কি বিশেষ অক্ষরগুলি এনকোড করা দরকার?
    • স্পেসস এবং (@) লক্ষণগুলি বিশেষভাবে চ্যালেঞ্জিং

শুভেচ্ছা।

উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবলস (সিএমডি প্রম্পট)

হালনাগাদ

দেখা যাচ্ছে যে উপরের কনফিগারেশনের পরেও আমার কাছে এখনও কিছু প্যাকেজ / স্ক্রিপ্টগুলির সাথে কিছু সমস্যা রয়েছে যা অনুরোধ - সরলিকৃত HTTP ক্লায়েন্টটি অভ্যন্তরীণভাবে স্টাফ ডাউনলোড করতে ব্যবহার করে use সুতরাং, উপরোক্ত রেডমি যেমন ব্যাখ্যা করেছেন, আমরা পরিবেশের ভেরিয়েবলগুলি নির্দিষ্ট করতে পারি কমান্ড লাইনে প্রক্সি সেট , এবং অনুরোধগুলি এই মানগুলিকে সম্মান জানায়।

তারপরে, এবং পরিবেশের পরিবর্তনশীলগুলি সেট করার চেষ্টা করার পরে (এবং আমি এটি স্বীকার করতে অনিচ্ছুক) বেশিরভাগ চেষ্টা (আরও দিনের মতো) নীচের নির্দেশিকাগুলি সহ আমি শেষ পর্যন্ত সফল হয়েছি:

rem notice that the value after the = has no quotations
rem    - I believe that if quotations are placed after it, they become
rem    part of the value, you do not want that
rem notice that there is no space before or after the = sign
rem     - if you leave a space before it, you will be declaring a variable 
rem     name that includes such space, you do not want to do that
rem     - if you leave a space after it, you will be including the space
rem     as part of the value, you do not want that either
rem looks like there is no need to URL encode stuff in there
SET HTTP_PROXY=http://DOMAIN\user name:password@x.x.x.x:port
SET HTTPS_PROXY=http://DOMAIN\user name:password@x.x.x.x:port

cntlm

আমি কয়েক সপ্তাহ ধরে উপরের কৌশলটি ব্যবহার করেছি, ততক্ষণে আমি প্রক্সি সেটআপের জন্য প্রয়োজনীয় সমস্ত সরঞ্জাম জুড়ে আমার পাসওয়ার্ড আপডেট করার ওভারহেডটি উপলব্ধি করেছি।

এনপিএম ছাড়াও, আমি এটিও ব্যবহার করি:

  • আবাস
  • ভবঘুরে
    • ভার্চুয়াল বক্স (চলমান লিনাক্স)
    • আপ্ট-গেট [লিনাক্স]
  • Git
  • vscode
  • বন্ধনী
  • পরমাণু
  • tsd

cntlm সেটআপ পদক্ষেপ

সুতরাং, আমি cntlm ইনস্টল করেছি । সেটিং cntlmচমত্কার stright এগিয়ে হয়, তাহলে আপনি স্টার ফাইলের জন্য চেহারা @C:\Program Files\Cntlm\cntlm.ini

  1. খোলা C:\Program Files\Cntlm\cntlm.ini(আপনার প্রশাসকের অধিকারের প্রয়োজন হতে পারে)
  2. সন্ধান করুন Usernameএবং Domainরেখাগুলি (8-9 লাইনটি আমি মনে করি)
    • আপনার ব্যবহারকারীর নাম যুক্ত করুন
    • আপনার ডোমেন যুক্ত করুন
  3. সেন্টিমিডি প্রম্পট রান:

    cd C:\Program Files\Cntlm\
    cntlm -M
    cntlm -H  
    • আপনাকে পাসওয়ার্ড জিজ্ঞাসা করা হবে:
     cygwin warning:
       MS-DOS style path detected: C:\Program Files\Cntlm\cntlm.ini
       Preferred POSIX equivalent is: /Cntlm/cntlm.ini
       CYGWIN environment variable option "nodosfilewarning" turns off this warning.
       Consult the user's guide for more details about POSIX paths:
         http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
     Password:
  4. আপনি যে আউটপুটটি পাবেন cntlm -Hতা দেখতে কিছুটা দেখতে পাবেন:

    PassLM          561DF6AF15D5A5ADG  
    PassNT          A1D651A5F15DFA5AD  
    PassNTLMv2      A1D65F1A65D1ASD51  # Only for user 'user name', domain 'DOMAIN'
    • এটা তোলে recomended যে আপনি PassNTLMv2 তাই একটি যোগ ব্যবহার #লাইন সামনে PassLMএবং PassNTঅথবা তাদের ব্যবহার করবেন না
  5. থেকে আউটপুট আটকান cntlm -Hস্টার জন্য লাইন প্রতিস্থাপন ফাইলে PassLM, PassNTএবং PassNTMLv2, বা মন্তব্য মূল লাইন এবং পুলিশের যোগ করুন।
  6. আপনার Proxyসার্ভারগুলি যুক্ত করুন। প্রক্সি সার্ভারটি কী তা যদি আপনি না জানেন ... আমি যা করেছি তা করুন, আমি AutoConfigURLরেজিস্ট্রি কীটি অনুসন্ধান করে আমার প্রক্সি অটো-কনফিগারেশন ফাইলটি সন্ধান করেছি HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings। সেই url এ নেভিগেট করুন এবং জাভাস্ক্রিপ্ট হওয়ার মতো কোডটি দেখুন।
  7. অপশনালি আপনি পোর্টটি পরিবর্তন করতে পারেন যেখানে সিএনটিএলএম Listen ####লাইন পরিবর্তন করে শোনেন , ####পোর্ট সংখ্যাটি কোথায় ।

সিএনটিএলএম সহ এনপিএম সেটআপ করুন

সুতরাং, আপনি আপনার সিএনটিএমএল প্রক্সিটিতে এনপিএম নির্দেশ করেন, আপনি আইপি ব্যবহার করতে পারেন, আমি ব্যবহার করেছি localhostএবং সিএনটিএলএম জন্য ডিফল্ট পোর্ট 3128যাতে আমার প্রক্সি ইউআরএল দেখতে দেখতে

http://localhost:3128

যথাযথ আদেশ সহ:

এনপিএম কনফিগারেশন প্রক্সি সেট করুন http: // লোকালহোস্ট: 3128

অনেক সহজ। আপনি একই URL এর সাহায্যে আপনার সমস্ত সরঞ্জাম সেটআপ করেছেন এবং আপনি কেবলমাত্র এক জায়গায় পাসওয়ার্ড আপডেট করেন। জীবন এত সহজ না।

অবশ্যই সেটআপ করতে হবে এনপিএম সিএ শংসাপত্র

এনএমপি ডকুমেন্টেশন সিএ থেকে

যদি আপনার কর্পোরেট প্রক্সিটি তার নিজের স্বাক্ষরিত শংসাপত্রের সাথে https সংযোগগুলিকে বাধা দিচ্ছে, তবে এড়ানো উচিত npm config set strict-ssl false (বড় নং-না)

বেসিক পদক্ষেপ

  1. আপনার ব্রাউজার থেকে শংসাপত্র পান (Chrome ভাল কাজ করে)। এটি বেস -৪৪ এনকোডড X.509 (.CER) হিসাবে রফতানি করুন
  2. এর সাথে নতুন লাইনগুলি প্রতিস্থাপন করুন \n
  3. আপনার .npmrcএকটি লাইন যুক্ত সম্পাদনা করুনca[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

সমস্যা

আমি খেয়াল করেছি যে মাঝে মাঝে এনপিএম ধরণের হ্যাং থাকে, তাই আমি (কখনও কখনও জোর করে) সিএনটিএলএম থামিয়ে পুনরায় চালু করি।


7

আমি এটি নিয়ে বেশ কয়েকটি সমস্যা নিয়ে এসেছি এবং শেষ পর্যন্ত আমি যা করেছি তা নিম্নরূপ:

  1. "স্বয়ংক্রিয়ভাবে প্রমাণীকরণ" সহ নির্বাচিত ফিডলার Used
  2. ফিডলার কাস্টম বিধিগুলিতে আমি যুক্ত করেছি

    if (m_AutoAuth) {oSession["X-AutoAuth"] = "domain\\username:password";}
  3. অবশেষে এনপিএমে আমি প্রক্সিটি http: // লোকালহোস্ট: 8888 এ সেট করেছি

এটি ভাল কাজ করে।


ধন্যবাদ! মোহন মতো কাজ করেছে !! আমার পরিস্থিতি: ব্যবহারকারীর নামটি "ডোমেন / ব্যবহারকারীর নাম" ফর্ম্যাটের ছিল। পাসওয়ার্ডটিতে একটি "@" ছিল। কোনও ইউআরএল এনকোডিং / ডিকোডিং ইত্যাদি করার দরকার নেই
A_B

আমার জন্য নিখুঁতভাবে কাজ করেছেন। তোমাকে অনেক ধন্যবাদ. কেবল এটি চিহ্নিত করতে চেয়েছিলেন যে "domain\\username:password"ব্যবহারটি পরিচয় চুরির একটি সুরক্ষিত হুমকির সৃষ্টি করতে পারে। পরিবর্তে "(default)"কাস্টম নিয়মে কনফিগারেশন ব্যবহার করে মোহনীয়ভাবে কাজ করে। এটি কাজ করার জন্য আপনি "এনপিএম" ব্যবহার করার সময় ফিডলারের চলমান থাকা দরকার।
pk10

7

কর্পোরেট ফায়ারওয়ালের পিছনে যে কেউ লড়াই করছেন, তেমনি এসএসএল সহ সমস্যাগুলি (স্থানীয় ইস্যুকারী শংসাপত্রটি পেতে অক্ষম), আপনি চেষ্টা করতে পারেন এমন কয়েকটি পদক্ষেপ এখানে:

এসএসএল সম্পর্কে ভুলে যান

আপনি যদি এসএসএল সম্পর্কে উদ্বিগ্ন না হন তবে আপনার প্রক্সি সেট করে এবং অনিরাপদ সংস্করণে রেজিস্ট্রি পরিবর্তন করে আপনি পূর্ববর্তী অনেক অবদানকারীদের পরামর্শ অনুসরণ করতে পারেন:

npm config set proxy http://username:password@proxyname:port
npm config set https-proxy http://username:password@proxyname:port
npm config set registry http://registry.npmjs.org/

এখানে একটি দ্রুত "গোটচা", আমার প্রক্সি শংসাপত্রগুলি সুরক্ষিত এবং অন-সুরক্ষিত অনুরোধগুলির জন্য একই ( https- প্রক্সি কনফিগারেশনের জন্য আমি কীভাবে আমার প্রোটোকলটিকে http: // হিসাবে রেখেছি তা লক্ষ্য করুন)। এটি আপনার জন্য একই হতে পারে, এবং এটি নাও হতে পারে।

আমি এসএসএল রাখতে চাই

আপনি যদি এসএসএল রাখতে চান এবং ব্যবহার করতে না চান strict-ssl=falseতবে আপনার আরও কাজ করতে হবে। আমার জন্য, আমি কর্পোরেট ফায়ারওয়ালের পিছনে আছি এবং আমরা স্ব-স্বাক্ষরিত শংসাপত্রগুলি ব্যবহার করছি, তাই আমি ত্রুটিটি পেয়েছি unable to get local issuer certificate। আপনি যদি আমার মতো একই নৌকায় থাকেন তবে আপনাকে cafile=এনপিএম কনফিগারেশন ফাইলে বিকল্পটি সেট করতে হবে । প্রথমত, আপনাকে একটি পিইএম ফাইল তৈরি করতে হবে যা আপনার স্বাক্ষরিত শংসাপত্রগুলির তথ্য রাখে। আপনি যদি এটি কীভাবে করতে জানেন না, তবে এখানে তৃতীয় পক্ষের সফ্টওয়্যারটি ব্যবহার না করে একটি উইন্ডোজ পরিবেশের জন্য নির্দেশাবলী দেওয়া হয়েছে:

আমাদের স্বাক্ষরকারী শংসাপত্রগুলি ব্যবহার করছি বলে কোন শংসাপত্রগুলিতে বিশ্বাস করা উচিত তা স্পষ্টভাবে আমাদের নির্দেশ করতে হবে। আমার উদাহরণস্বরূপ, আমি ক্রোম ব্যবহার করে www.google.com এ নেভিগেট করেছি যাতে আমি শংসাপত্রগুলি ধরতে পারি।

Chrome এ, পরিদর্শন করুন -> সুরক্ষা -> শংসাপত্র দেখুন। আপনি সমস্ত শংসাপত্রগুলি দেখতে পাবেন যা এসএসএল সংযোগের অনুমতি দেয়। এই শংসাপত্রগুলি স্ব স্বাক্ষরিত কীভাবে তা লক্ষ্য করুন। অস্পষ্ট অংশটি আমার সংস্থা, এবং আমরা কোনও প্রত্যয়িত কর্তৃপক্ষ নই। আপনি পি 7 বি ফাইল হিসাবে সম্পূর্ণ শংসাপত্রের পাথটি রফতানি করতে পারেন বা আপনি আলাদাভাবে শংসাপত্রগুলি সিইআর ফাইল (বেস 64 এনকোডিং) হিসাবে রফতানি করতে পারেন। পি 7 বি হিসাবে পুরো পথটি রফতানি করা আপনার পক্ষে তেমন ভাল কিছু করে না কারণ আপনাকে এই ফাইলটি শংসাপত্র ব্যবস্থাপকটিতে খোলার প্রয়োজন হবে এবং যাইহোক পৃথক সিইআর ফাইল হিসাবে রফতানি করতে হবে। উইন্ডোজে, পি 7 বি ফাইল ডাবল-ক্লিক করলে শংসাপত্র ব্যবস্থাপক অ্যাপ্লিকেশনটি খুলবে।

এখানে চিত্র বর্ণনা লিখুন

সিইআর হিসাবে রফতানি করা (বেস 64) সত্যই নিম্নলিখিত বিন্যাসে একটি পাঠ্য ফাইল:

-----BEGIN CERTIFICATE-----
MIIGqzCCBZOgAwIBAgITIwAAABWhFPjwukYhTAADAAAAFTANBgkqhkiG9w0BAQUF
ADBFMRMwEQYKCZImiZPyLGQBGRYDY29tMRYwFAYKCZImiZPyLGQBGRYGaXJ2aW5n
b0pvCkNmjWzaNNUg2hYET+pP5nP75aRu+kPRl9UnlQ....rest of certificate...
-----END CERTIFICATE-----

আমাদের পিইএম ফাইল তৈরি করতে, আমাদের কেবলমাত্র একে অপরের উপরে এই শংসাপত্রগুলি একটি একক ফাইলে স্ট্যাক করে এক্সটেনশনটি .pem এ পরিবর্তন করতে হবে। আমি এটি করতে নোটপ্যাড ব্যবহার করেছি।

আপনি শংসাপত্রের পথ থেকে বিপরীত ক্রমে শংসাপত্রগুলি স্ট্যাক করেন। সুতরাং উপরে, আমি *। গুগল ডটকম দিয়ে শুরু করব তারপরে তার নীচে ওয়েবসেন্সটি পেস্ট করব, তারপরে সিএ 1 প্রদান করব This এইভাবে শংসাপত্রগুলি যথাযথ রুট সিএ অনুসন্ধান করে উপর থেকে নীচে অবধি পার্স করা হয় কেবলমাত্র রুট সিএ অন্তর্ভুক্ত করা কার্যকর হবে না, তবে আমাদের সমস্ত শংসাপত্রও অন্তর্ভুক্ত করার দরকার নেই। উপরের পাথ থেকে আমার কেবল সেই সকল শংসাপত্রগুলি অন্তর্ভুক্ত করা দরকার যা ওয়েবসেস শংসাপত্রের আগে আসে (সিএ 1 প্রদান করে, নীতি সিএ, রুট সিএ)।

এই স্ব স্বাক্ষরিত শংসাপত্রগুলি একটি পিইএম ফাইলে সংরক্ষণ করা হয়ে গেলে, আমরা এই শংসাপত্রগুলিকে আমাদের বিশ্বস্ত সিএ হিসাবে ব্যবহার করার জন্য এনপিএমকে নির্দেশ দেওয়ার জন্য প্রস্তুত। কেবল কনফিগার ফাইলটি সেট করুন এবং আপনার যাওয়া ভাল হবে:

npm config set cafile "C:\yourcerts.pem"

এখন, আপনার প্রক্সি সেট (HTTP এবং https), এবং এতে রেজিস্ট্রি সেট করে https://registry.npmjs.orgআপনার strict-sslসেটিংটি বিনীত না করে স্ব-স্বাক্ষরিত শংসাপত্র সহ কর্পোরেট ফায়ারওয়ালের পিছনে প্যাকেজ ইনস্টল করতে সক্ষম হওয়া উচিত ।


6

এনপিএম যদি প্রমাণীকরণের ত্রুটি দিচ্ছে তবে আপনি ফিডলারের চেক করতে পারেন। এটি ইনস্টল এবং কনফিগার করা সহজ is ফিডলারের বিধিটি স্বয়ংক্রিয়ভাবে প্রমাণীকৃততে সেট করুন। .Npmrc এ এই বৈশিষ্ট্যগুলি সেট করুন

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

এটি আমার জন্য কাজ করেছে :)


আশ্চর্যজনকভাবে, আমার প্রক্সিটির জন্য আমি যে কনফিগারেশন ব্যবহার করেছি তার কোনওটিই কাজ করেনি, আমি এটি ব্যবহার করেছি এবং ফিডারটি খুলি এবং আমি এটি ঠিকই ব্যবহার করতে পারি ...
রবার্তো

5

এটি চেষ্টা করুন, নিম্নলিখিতভাবে এনপিএমে প্রক্সি সেট করুন

npm config set proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set https-proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"

4

আপনি আপনার সার্ভার প্রশাসক বা সমর্থন থেকে প্রক্সি হোস্ট এবং পোর্ট পাবেন।

তার পরে সেট আপ

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

পাসওয়ার্ডে কোনও বিশেষ অক্ষর থাকলে% urlencode দিয়ে চেষ্টা করুন with উদাহরণস্বরূপ: - পাউন্ড (হ্যাশ) শিউল্ড% 23 দ্বারা প্রতিস্থাপিত হবে।

এটি আমার পক্ষে কাজ করেছে ...


3

আপনার প্রকল্প ফোল্ডারে কেবল .npmrc ফাইল নামে একটি ফাইল তৈরি করুন, এটি সিস্টেম পর্যায়ে প্রক্সি সেটিং এড়াবে

#Without password
proxy=http://ipaddress:80
https-proxy=http://ipaddress:80

#With password
proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

আপনি যদি প্রক্সি ব্যবহার না করেন তবে এ জাতীয় মন্তব্য করুন

#proxy=http://ipaddress:80
#https-proxy=http://ipaddress:80

#With password
#proxy=http://<username>:<pass>@proxyhost:<port>
#https-proxy=http://<uname>:<pass>@proxyhost:<port>

3

বিদ্যমান উত্তরগুলির মধ্যে কোনও একটি পিএসি ফাইলের সাথে এনপিএম কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করে না। কিছু পিএসি ফাইল ডাউনলোড করার পরামর্শ দেয়, ম্যানুয়ালি এটি পরীক্ষা করে এবং "প্রক্সি ..." স্ট্রিংগুলির মধ্যে একটি বেছে নেওয়ার পরামর্শ দেয়। পিএসি ফাইলের একাধিক প্রক্সি থেকে বাছাই করা দরকার হয় বা যদি কিছু পিআরএল ফাইলের নির্দিষ্ট ইউআরএলগুলির জন্য বাইপাস প্রক্সির জটিল যুক্তি থাকে তবে এটি কাজ করে না।

এছাড়াও, কিছু কর্পোরেট প্রক্সিগুলির NTLM প্রমাণীকরণ প্রয়োজন require সিএনটিএলএম প্রমাণীকরণ হ্যান্ডেল করতে পারে তবে পিএসি ফাইলগুলি সমর্থন করে না।

একটি বিকল্প হ'ল আলপাকা ব্যবহার করা , যা একটি জাভাস্ক্রিপ্ট ভিএম-তে প্যাক ফাইল চালায় এবং ফলস্বরূপ প্রক্সি সহ এনটিএলএম প্রমাণীকরণ সম্পাদন করে।


2

আপনি যদি প্রক্সি সহ কোনও কর্পোরেট নেটওয়ার্কের পিছনে থাকেন তবে আমি সবেমাত্র একটি এনটিএলএম প্রক্সি সরঞ্জাম ব্যবহার করেছি এবং এনটিএলএম সরবরাহকৃত পোর্ট এবং প্রক্সি ব্যবহার করেছি, ততক্ষণে আমি এই কনফিগারেশনটি ব্যবহার করেছি:

strict-ssl=false
proxy=http://localhost:3125

আশা করি এটা কাজে লাগবে.


2

সিএমডি বা জিআইটি বাশ বা অন্যান্য প্রম্পটে নীচের কমান্ডটি ব্যবহার করুন

$ npm config set proxy "http://192.168.1.101:4128"

$ npm config set https-proxy "http://192.168.1.101:4128"

যেখানে 192.168.1.101 প্রক্সি আইপি এবং 4128 বন্দর। আপনার প্রক্সি সেটিংস অনুযায়ী পরিবর্তন করুন।


2

আপনাকে অবশ্যই "এনপিএম কনফিগারেশন সেট HT- প্রক্সি ব্যবহার করতে হবে "

ব্যবহার করুন:

npm config set http-proxy http://1.2.3.4:8181
npm config set https-proxy http://1.2.3.4:8181

1

কর্মক্ষেত্রে আমরা আমাদের প্রক্সি হিসাবে জেডস্কেলার ব্যবহার করি। কাজ করার জন্য এনপিএম পাওয়ার একমাত্র উপায় ছিল সিএনটিএলএম ব্যবহার করা ।

এই উত্তর দেখুন:

এনটিএলএম প্রক্সি পিছনে এনপিএম


1

এটি ব্যবহার করে দেখুন, একমাত্র আমার পক্ষে কাজ করেছিল:

এনপিএম - প্রক্সি http: //: @proxyhost: --https-proxy http: //: @proxyhost: --strict-ssl মিথ্যা ইনস্টল -জি প্যাকেজ

বিকল্পটি মনোযোগ দিন --strict-ssl মিথ্যা

শুভকামনা।


1

NPM প্রক্সি গৃহীত উত্তর উল্লেখিত সেটআপ সমস্যা সমাধানের কিন্তু হিসাবে আপনি দেখতে পাবেন এই npm ইস্যু , কিছু নির্ভরতা এলেবেলে ব্যবহার করে এবং করে নির্মিত হয় Git প্রক্সি প্রয়োজন সেটআপ , এবং ফলো করা সম্ভব:

git config --global http.proxy http://username:password@host:port
git config --global https.proxy http://username:password@host:port

উল্লিখিত এনপিএম প্রক্সি সেটআপ:

npm config set proxy "http://username:password@host:port"
npm config set https-proxy "http://username:password@host:port"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"

0

আমার অনুরূপ সমস্যা ছিল এবং আমি উপরের সমস্ত কাজের ক্ষেত্র চেষ্টা করেছিলাম কিন্তু তাদের মধ্যে কেউই আমার পক্ষে কাজ করেনি (আমি আমার পাসওয়ার্ডে বিশেষ অক্ষর (যেমন '@' প্রতীক) ব্যবহার করছিলাম এবং আমার ডোমেন নাম যুক্ত করার দরকার ছিল)।

তা ছাড়া আমি আমার পাসওয়ার্ডটিকে সরল পাঠ্য হিসাবে যুক্ত করতে কিছুটা ভয় পেয়েছিলাম। এই সমস্ত চ্যালেঞ্জগুলি কাটিয়ে ওঠার সবচেয়ে সহজ সমাধানটি হ'ল কোনও ধরণের বিপরীত প্রক্সি ব্যবহার করা (যেমন ফিডলারের মতো)।

আমি ইতিমধ্যে এসওতে এই উত্তরটির কনফিগারেশন পদক্ষেপগুলি বিশদভাবে জানিয়েছি ।


0

.Typingsrc ফাইলে নীচের লাইনগুলি যুক্ত করা আমাকে সহায়তা করেছিল।

{
    "rejectUnauthorized": false,
    "registryURL" :"http://api.typings.org/"
 }

0

আমি অনুরূপ ইস্যুতে দৌড়ে গিয়ে জানতে পেরেছিলাম যে আমার এনএমপি কনফিগারেশন ফাইলের (.npmrc) ভুল রেজিস্ট্রি এন্ট্রি হচ্ছে। এটি মন্তব্য করেছে এবং এনপিএম ইনস্টলটি আবার চালিয়েছে। এটা কাজ করেছে.


0

ওএস: উইন্ডোজ 7

যে পদক্ষেপগুলি আমার পক্ষে কাজ করেছে:

  1. npm config get proxy
  2. npm config get https-proxy

  3. মন্তব্যসমূহ: আমি আমার প্রক্সি সেটিংস জানতে এই আদেশটি কার্যকর করেছি
    npm config rm proxy

  4. npm config rm https-proxy
  5. npm config set registry=http://registry.npmjs.org/
  6. npm install

0

কর্মক্ষেত্রে প্রক্সি সেটিংস সেট করতে এবং সেগুলি বাড়িতে বন্ধ করে দেওয়ার ক্ষেত্রে আমার এখনও সমস্যা আছে, তাই আমি এনপিএম-কর্পো-প্রক্সি.শ স্ক্রিপ্ট করে প্রকাশ করেছি । প্রতিটি কর্পোরেশনে পাসওয়ার্ডটি প্রায়শই পরিবর্তন করতে হয় এবং এতে অবশ্যই বিশেষ অক্ষর থাকতে হবে, যা এনপিএম কনফিগারেশন খাওয়ার আগে অবশ্যই এনকোড করা উচিত (ব্যাক্যাশ ফর্ম ডোমেন \ ব্যবহারকারীর জন্য একই)।


0

গুগলে একটি সামান্য অনুসন্ধান থেকে প্রথম জিনিসটি আমি চেষ্টা করেছিলাম

npm config set registry http://registry.npmjs.org/
npm config set proxy "your proxy"
npm config set https-proxy "your proxy"

"এনএমপি ইনস্টল" এর চেষ্টা করার পরেও এনপিএম সংযোগ হারিয়েছে বলে মনে হয়েছে। তারপরে আমি কমান্ড প্রম্পটে এই লাইনটি চালিয়েছি এবং এখন আমি এনপিএম ইনস্টল ব্যবহার করতে পারি

set NODE_TLS_REJECT_UNAUTHORIZED=0

0

আমি এটি সিএনটিএলএম দিয়ে কাজ করতে পারি না। আমি উপরে পোস্ট করা সমস্ত তথ্য অনুসরণ করার চেষ্টা করেছি, তবে প্রক্সিটি এখনও সংযোগটি অনুমোদন দেয় নি। ফিডলারের সাথে, আপনাকে কেবল এটি ইনস্টল করতে হবে এবং স্বয়ংক্রিয়ভাবে প্রমাণীকরণ বিকল্পটি পরীক্ষা করতে হবে। তবে কাজ করার জন্য, আমাকে আমার ব্যবহারকারী ফোল্ডার থেকে .npmrc ফাইলটি সরিয়ে ফেলতে হয়েছিল এবং এই মানগুলি সহ পরিবেশের ভেরিয়েবলগুলি এখানে বর্ণিত হিসাবে সেট করতে হবে :

set npm_config_https-proxy="http://127.0.0.1:8888"

set npm_config_registry="http://registry.npmjs.org/"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.