Introducción
Este documento le ayuda a resolver problemas del mensaje de error relacionado con SunPKCS11-NSS. Este error aparece cuando se inician los servicios tomcat en los equipos CloudCenter Manager (CCM) y CloudCenter Orchestrator (CCO).
Versión afectada
Nota: Este error se observa durante la nueva instalación de 4.7.1.1
Problema
Cuando intente configurar CloudCenter, el usuario puede ver este mensaje de error en 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
Solución
Este error se debe a los Servicios de seguridad de red no configurados en Java 8. Normalmente, el instalador de CloudCenter lo configura, pero hay casos en los que falta esta configuración.
Cómo reconfigurar NSS en los servidores CloudCenter:
Vaya a este directorio:
cd /usr/lib/jvm/java-8-sun/jre/lib/security
Verifique la configuración java.security:
cat java.security | grep security.provider
Si NSS está configurado en el sistema, debería verlo en la lista de security.Provider.10, como se muestra aquí:
[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
Si falta la línea resaltada, agréguela al archivo java.security.
Cree el archivo nss.cfg en el mismo directorio con este contenido:
name = NSS
nssLibraryDirectory = /usr/lib64/
nssDbMode = noDb
attributes = compatibility
Verifique si el permiso en el archivo java.security y nss.cfg es correcto. El permiso debe ser 644.
Reinicie la VM de CloudCenter:
reboot
Ahora debería poder configurar CloudCenter.