এইচটিটিপিএস-ভিত্তিক অভ্যন্তরীণ এপিটি সংগ্রহস্থলের জন্য স্ব-স্বাক্ষরিত এসএসএল শংসাপত্র ব্যবহার করা


10

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

হোস্টকে বৈধতা দেওয়ার জন্য আমার নিজের রুট সিএ শংসাপত্রটি ব্যবহার করতে অ্যাপট-গেটকে নির্দেশিত করার জন্য আমি apt.conf ম্যান পৃষ্ঠা অনুসরণ করার চেষ্টা করেছি, তবে এটি কার্যকর বলে মনে হচ্ছে না।

আমার apt.conf ফাইলটি দেখতে এমন দেখাচ্ছে:

#Acquire::https::repo.mydomain.com::Verify-Peer "false";
Acquire::https::repo.mydomain.com::CaInfo      "/etc/apt/certs/my-cacert.pem";
Acquire::https::repo.mydomain.com::SslCert     "/etc/apt/certs/my-cert.pem";
Acquire::https::repo.mydomain.com::SslKey      "/etc/apt/certs/my-key.pem";

আমি একটি ক্লায়েন্ট শংসাপত্রও ব্যবহার করি, তবে এটি কোনও সমস্যা বলে মনে হচ্ছে না কারণ যখন আমি ভেরিফাই-পিয়ারকে "মিথ্যা" (উপরে মন্তব্য করা) সেট করি তখন সবকিছু কাজ করে।

একই সিএ শংসাপত্র, ক্লায়েন্ট শংসাপত্র এবং কীটি কার্ল সহ ভাল কাজ করে।

আমি অ্যাপটি ডিবাগিং সক্ষম করেছি (ডিবাগ :: অর্জন :: https "সত্য") তবে এটি খুব অল্প তথ্য দেয়।

কিভাবে অগ্রসর করার উপর কোন পরামর্শ?

উত্তর:


5

আমি ক্লায়েন্ট প্রমাণীকরণ ব্যবহার করি না, কেবল এইচটিটিপিএস, তবে আমি এটি ব্যবহার করে এটি পেয়েছি:

Acquire::https {
        Verify-Peer "false";
        Verify-Host "false";
}

আমি এটি একটি ফাইলের নীচে রেখেছি /etc/apt/apt.conf.d


1
ঠিক এটিই আমি চাই না - আমি নিজের সিএ সার্ট ব্যবহার করে সার্ভারটি যাচাই করতে চাই। অক্ষম যাচাইকরণ কাজ করে তবে আমি এটি দীর্ঘ মেয়াদে করতে চাই না।
শেভ্রন

5

সম্প্রতি, আমিও একই ধরণের সমস্যার মুখোমুখি হয়েছি। আমি SslForceVersionবিকল্প যুক্ত করে এটি সমাধান করেছি ।

আমার কনফিগার মত:

Acquire::https::test.com {
    Verify-Peer "true";
    Verify-Host "true";

    CaInfo "/tmp/ca.crt";

    SslCert "/tmp/client.crt";
    SslKey  "/tmp/client.key";
    SslForceVersion "SSLv3";
};

2
এটির সাথে সাবধানতা অবলম্বন করুন। ওয়েবসাইটগুলি বিভিন্ন সুরক্ষার কারণে SSLv3 অক্ষম করতে শুরু করেছে; ভবিষ্যতে কেবল টিএলএসভি 1 এবং উচ্চতর কাজ করবে, এবং কেবলমাত্র টিএলএসভি 1.2 +
মাইকেল হ্যাম্পটন

3

ইন askubuntu , আমি এই সমাধানের একটি কিছুটা সহজ সংস্করণ এবং এক একটি একক হোস্টে বিকল্প সীমাবদ্ধ পাওয়া যায় নি।

Acquire::https::mirror.ufs.ac.za::Verify-Peer "false";

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

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


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

3

সিএ-শংসাপত্র ইনস্টল করে আমি এটি অন্যভাবে সমাধান করেছি।

  1. আপনার *.crtফাইলটি `/ usr / স্থানীয় / ভাগ / সিএ-শংসাপত্র / এ অনুলিপি করুন
  2. চালান sudo update-ca-certificates

এই সমাধানটি কমপক্ষে 14.04 এর সাথে উবুন্টুতে কাজ করে।


1
এটি প্রক্সির এসএসএল ইন্টারসেপশন / ডিক্রিপশন করার ক্ষেত্রেও কাজ করে। কেবলমাত্র / ইত্যাদি / এসএসএল / সার্টগুলিতে শংসাপত্র যুক্ত করা হয় না। এই জন্য আপনাকে ধন্যবাদ!
জর্দান

1
এটি কাজ করে না কারণ আমার দ্বারা ইনস্টল করা শংসাপত্রটি আমাদের ফায়ারওয়ালের স্ব স্বাক্ষরিত শংসাপত্র। আমার আর কোনও শংসাপত্র নেই।
পল

1

আশা করি এটি অন্যকে সহায়তা করে - আমি সরাসরি এটি সমাধান করতে পারিনি।

কার্যকারণ হিসাবে, আমি এখন আমার এইচটিটিপিএস সংগ্রহস্থলে একটি সুড়ঙ্গ তৈরি করতে স্টানেল 4 ব্যবহার করছি। স্ব-স্বাক্ষরিত শংসাপত্র এবং ক্লায়েন্ট শংসাপত্র আমার কাছে স্ট্যান্ডেল 4 দিয়ে খুব ভাল কাজ হয়েছে।

আগত সংযোগগুলির জন্য আমি লোকালহোস্ট: 8888 শোনার জন্য স্টানাল স্থাপন করেছি এবং এগুলি আমার রেপোতে পৌঁছে দিন (repo.mydomain.com:4:4)। আমি আমার সংগ্রহস্থলটি http: // লোকালহোস্ট: 8888 /সন্ধানের জন্য প্রস্তুত রেখেছি ।

এখনও অবধি এটি ভালভাবে কাজ করছে, যদিও এটি একটি অপ্রয়োজনীয় হ্যাকের মতো বলে মনে হচ্ছে।


-1

GnuTLS বা অ্যাপটি বগি বলে মনে হচ্ছে। আমার অ্যাপটি উত্স থেকে হোস্টের নামটি যদি আমার সংগ্রহস্থল ওয়েবসারভার থেকে অ্যাপাচি সার্ভারনামের সাথে মেলে না তবে আমি টিএলএসভি 1 ব্যবহার করে নিম্নলিখিত ত্রুটিটি পেয়েছি:

ডাব্লু: https: //repo.example/debian/dists/unstable/non-free/binary-amd64/Packages আনতে ব্যর্থ : gnutls_handshake () ব্যর্থ হয়েছে: একটি টিএলএস সতর্কতা সতর্কতা পেয়েছে।

SSLv3 ব্যবহার করে সবকিছু ঠিকঠাক কাজ করে works

দ্রষ্টব্য: এসএসএল শংসাপত্রের সাথে এর কোনও যোগসূত্র নেই। একটি অবৈধ শংসাপত্র নিম্নলিখিত ত্রুটির ফলে:

ভুল HTTPS: //repo1.example অস্থির / অ বিনামূল্যে মধ্যে i386 প্যাকেজগুলি SSL এর: শংসাপত্র বিষয় নাম (repo.example) লক্ষ্য হোস্টনেম সাথে মেলে না 'repo1.example'


প্রকৃতপক্ষে, এটি সঠিক - অ্যাপাচি এসএনআই সমর্থন করে এবং ক্লায়েন্টের কাছ থেকে প্রাপ্ত হোস্টনামটি সার্ভারের কনফিগার করা হোস্টনামের সাথে মেলে না এমন সময় সতর্কতা অবলম্বন করে। এটি ভাল হবে যদি অ্যাপলটি সতর্কতার বিবরণগুলি প্রিন্ট করে তবে এটি সঠিক জিনিস করছে। এসএসএলভি 3-এ ফিরে যাওয়া আজকাল খুব বুদ্ধিমানের কাজ, এবং কেবলমাত্র "কাজ করে" কারণ আপনি যে বৈশিষ্ট্যগুলি ব্যবহার করছেন সেগুলি অক্ষম করছেন।
djmitche
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.