يجب استيراد الشهادة إلى jdk حتى يتمكن التطبيق من الوصول إلى HTTPS. عادة ، أفعل ذلك على النحو التالي:
keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias WoSign -file WS_CA1_NEW.cer
إذا كان تطبيقي يعمل في CF باستخدام java-buildpack ، كيف يمكنني فعل الشيء نفسه مع java-buildpack؟
شكرا.
يمكن إضافة الشهادات التي يتم مشاركتها عبر جميع التطبيقات (مثل CA المستخدمة على مستوى الشركة) باستخدام دعم الشهادات الموثوقة من BOSH (المتوفرة أيضًا في PCF Ops Manager). الشهادات التي يتم مشاركتها عبر عدد من التطبيقات ، ولكن ليس بالضرورة كلها ، يمكن أن تستخدم تفرع من buildpack الذي يحل محل ملف cacerts
في JRE . أخيرًا ، يمكن تجميع الشهادات التي يستخدمها تطبيق واحد داخل التطبيق نفسه (عادةً في حدود META-INF
بحيث لا يمكن تقديمها عن طريق الخطأ للمستخدمين) ، ويُشار إليها بخصائص النظام (على سبيل المثال -Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
).
مرحبا nebhale ،
أتابع https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-open_jdk_jre.md#custom -ca-الشهادات وأحصل على خطأ أثناء التدريج.
هل لديك أي فكرة عن هذا؟ شكرا!
راجع للشغل ، "cf push" يمكن أن يكون ناجحًا باستخدام buildpack الرسمي.
سجلات الأخطاء:
Staging...
-----> Java Buildpack Version: ee0dec3 | https://github.com/zhongyi-zhang/java-buildpack.git#ee0dec3
-----> Downloading Open Jdk JRE 1.8.0_121 from https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz (found in cache)
Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.6s)
[Buildpack] ERROR Compile failed with exception #<Errno::EEXIST: File exists @ dir_s_mkdir - /tmp/app/.java-buildpack/open_jdk_jre/./lib/security/cacerts>
File exists @ dir_s_mkdir - /tmp/app/.java-buildpack/open_jdk_jre/./lib/security/cacerts
Failed to compile droplet
Exit status 223
Staging failed: Exited with status 223
FAILED
BuildpackCompileFailed
يشير اختبارنا إلى أن هذا يعمل حاليًا. يوجد فرع بملف cacerts
مخصص في هذا الفرع . يمكنك دفع تطبيق يحدد -b https://github.com/cloudfoundry/java-buildpack.git#custom-ca-certs
وسترى مرحلة التقديم بشكل صحيح.
من الصعب تحديد سبب عدم إمكانية نسخ ملفك بالضبط ، ولكن من المحتمل أن تكون أذونات على الملف cacerts
الذي أضفته إلى المفترق.
أوه ، المشكلة هي أن cacerts
عبارة عن Java KeyStore
يحتوي على جميع شهادات CA التي ترغب في الوثوق بها .
التعليق الأكثر فائدة
يمكن إضافة الشهادات التي يتم مشاركتها عبر جميع التطبيقات (مثل CA المستخدمة على مستوى الشركة) باستخدام دعم الشهادات الموثوقة من BOSH (المتوفرة أيضًا في PCF Ops Manager). الشهادات التي يتم مشاركتها عبر عدد من التطبيقات ، ولكن ليس بالضرورة كلها ، يمكن أن تستخدم تفرع من buildpack الذي يحل محل ملف
cacerts
في JRE . أخيرًا ، يمكن تجميع الشهادات التي يستخدمها تطبيق واحد داخل التطبيق نفسه (عادةً في حدودMETA-INF
بحيث لا يمكن تقديمها عن طريق الخطأ للمستخدمين) ، ويُشار إليها بخصائص النظام (على سبيل المثال-Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
).