ما هي الطريقة الصحيحة لتغذية شهادة SSL في phantomjs

StackOverflow https://stackoverflow.com//questions/21001374

  •  20-12-2019
  •  | 
  •  

سؤال

أحتاج إلى الوصول إلى موقع داخلي محمي عبر شهادات من جانب العميل.لذلك، لاستخدام phantomjs، قمت بتصدير الشهادة التي أستخدمها في Firefox للوصول إلى الموقع وقمت بتحويلها إلى مفتاح خاص وشهادة باستخدام سطر أوامر opensl.أنا الآن أقوم بتقديم تلك الشهادة إلى خادم SSL عند الوصول إلى صفحة على الخادم.كيف فعلتها؟

لقد حاولت هذا

phantomjs --ssl-certificates-path=/etc/pki  --ignore-ssl-errors=yes --proxy=myproxy:myport test.js

مع /etc/pki هو المسار الذي وضعت فيه الشهادة والمفتاح

test.js هو هذا فقط؛-

page = require('webpage').create()
page.open('https://myprotectedsite/', function(status) {
console.log(status);
phantom.exit();
})

لكنها لا تعمل.console.log(status) يكون دائمًا "فشل"

ما الذي أنا بحاجة لفعله؟

هل كانت مفيدة؟

المحلول

أبحث عن القرار أيضا.لم يتم تنفيذها https://github.com/ariya/phantomjs/isues/10524

"- مسار شهادات SSL" - يتم استخدامه لشهادة CA

نصائح أخرى

الميزة التي تم تنفيذها يمكنك رؤيتها مشروع جيثب, ، الأمر هو أنه لم يتم تضمينه بالفعل في الإصدار المستقر الفعلي (2.0.0)، ومع ذلك فمن المخطط تضمينه في الإصدار 2.0.1.وفي الوقت نفسه يمكنك تنزيل الإصدار 2.0.1 من هنا (الرابط من مناقشة git).

أحاول استخدام 2.0.1 الإصدار ويمكنني الوصول إلى الموقع بشكل صحيح من خلال تفويض عميل SSL باستخدام الأمر التالي:

جديد أخيرا PhantomJS 2.1 تم إصدار الإصدار الذي يتضمن هذه الميزة، يمكنك تنزيله من هنا واختبار ترخيص عميل SSL باستخدام الأمر التالي:

phantomjs --ssl-client-certificate-file=C:\tmp\clientcert.cer 
          --ssl-client-key-file=C:\tmp\clientcert.key 
          --ssl-client-key-passphrase=1111 
          --ignore-ssl-errors=true 
          C:\tmp\test.js

ملحوظات

أنا فقط اختبار هذا على نظام التشغيل Windows.

أحاول استخدام أ PKCS12 file كمخزن مفاتيح ولكن يبدو أن هذا التنسيق لا يعمل، لذا فإن استخدام openssl أقوم باستخراج الشهادة والمفتاح الخاص باستخدام الأوامر التالية:

استخراج شهادة ل --ssl-client-certificate-file معامل

openssl pkcs12 -nokeys -clcerts -in a.p12 -out clientcert.cer

استخراج المفتاح ل --ssl-client-key-file معامل

openssl pkcs12 -nocerts -in a.p12 -out clientcert.key

بالإضافة إلى ذلك أستخدم --ignore-ssl-errors=true لتجنب تكوين مخزن الثقة للتحقق من صحة شهادة الخادم.

كما البرنامج النصي الذي أستخدمه test.js الذي يحتوي على نفس عرض OP على السؤال:

page = require('webpage').create()
page.open('https://myproject', function(status) {
      page.render('C:/temp/connect.png');
      console.log(status);
      phantom.exit();
})

دعم شهادة العميل قد تم تنفيذها بالفعل منذ الإجابة الأصلية المقبولة.أنا نشر هذا من أجل مساعدة الآخرين الذين سيتعثرون على هذا السؤال كذلك.يمكنك العثور على المعلمات لتمكين دعم شهادة X509 / PKI في تعليمات CLI Phantomjs :

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top