المقدمة
يساعدك هذا المستند على أستكشاف أخطاء رسالة الخطأ المتعلقة ب SunPKCS11-NSS وإصلاحها. يظهر هذا خطأ عندما يبدأ أنت ال tomcat خدمة في CloudCenter Manager (CCM) و CloudCenter Orchestrator (CCO) أداة.
الإصدار المتأثر
ملاحظة: يتم مراقبة هذا الخطأ أثناء التثبيت الجديد ل 4.7.1.1
المشكلة
عند محاولة تكوين CloudCenter، قد يرى المستخدم رسالة الخطأ هذه في osmosix.log:
2017-05-20 20:07:15,153 ERROR config.GatewayConfigController [http-apr-8443-exec-8] - com.osmosix.commons.crypto.CryptoException: com.osmosix.commons.crypto.CryptoException: java.security.NoSuchProviderException: No such provider: SunPKCS11-NSS
java.lang.RuntimeException: com.osmosix.commons.crypto.CryptoException: com.osmosix.commons.crypto.CryptoException: java.security.NoSuchProviderException: No such provider: SunPKCS11-NSS
at com.osmosix.commons.convert.converter.CryptoJson2HttpMessageConverter.encrypt(CryptoJson2HttpMessageConverter.java:87
الحل
يرجع سبب هذا الخطأ إلى عدم تكوين "خدمات أمان الشبكة" في Java 8. وعادة ما يتم تكوينه بواسطة مثبت CloudCenter، ولكن هناك مثيلات حيث يكون هذا التكوين مفقودا.
كيفية إعادة تكوين NSS على خوادم CloudCenter:
الانتقال إلى هذا الدليل:
cd /usr/lib/jvm/java-8-sun/jre/lib/security
تحقق من تكوين java.security:
cat java.security | grep security.provider
إذا تم تكوين NSS على النظام، فيجب أن تراها مسردة في security.provider.10، كما هو موضح هنا:
[root@localhost security]# cat java.security | grep security.provider
# security.provider.<n>=<className>
# named Sun appears in the sun.security.provider package. Thus, the
# security.provider.1=sun.security.provider.Sun
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.pkcs11.SunPKCS11 /usr/lib/jvm/java-8-sun/jre/lib/security/nss.cfg
login.configuration.provider=sun.security.provider.ConfigFile
policy.provider=sun.security.provider.PolicyFile
إذا كان الخط ذو الإضاءة العالية مفقود، فقم بإضافته إلى ملف java.security.
قم بإنشاء ملف nss.cfg في نفس الدليل مع هذا المحتوى:
name = NSS
nssLibraryDirectory = /usr/lib64/
nssDbMode = noDb
attributes = compatibility
تحقق ما إذا كان الإذن الموجود على ملف java.security وnss.cfg صحيحا أم لا. يجب أن يكون الإذن 644.
إعادة تمهيد CloudCenter VM:
reboot
الآن يجب أن تكون قادرا على تكوين CloudCenter.