Hola a todos,
Si eres como yo, no te gusta pagar por algo que está disponible de forma gratuita. Un ejemplo de ello son los certificados SSL. Letsencrypt.org es un excelente servicio para obtener certificados SSL gratuitos, si conoce un poco de secuencias de comandos para automatizarlo todo. Llevamos varios años utilizando certificados Letsencrypt en instalaciones B1 de todo tipo y para todo tipo de servicios: ServiceLayer, SLD (Mobile Service), B1 Integration Framework, API Gateway, etc.
Con SAP Business One 10.0 FP2208 se introdujo un nuevo servicio: el servicio de autenticación utilizado para IAM (Identity and Access Management).
Lamentablemente, no se ha publicado ninguna documentación oficial (que yo sepa) que especifique cómo actualizar el certificado utilizado para el servicio, que de forma predeterminada se ejecuta en el puerto 40020.
Este es nuestro procedimiento para actualizar el certificado (que en el caso de letsencrypt.org se renueva regularmente cada 60 días de forma predeterminada).
En primer lugar, durante la actualización de cualquier instalación, tenga en cuenta que el servicio de autenticación utiliza de forma predeterminada el certificado utilizado durante la instalación o actualización anterior. desde la ruta de instalación (no desde la ruta actualmente en ejecución). Dado que es muy probable que eso ocurra hace al menos unos meses, probablemente terminará con un certificado caducado en el servicio de autenticación inmediatamente después de la actualización. Sin embargo, es importante tener en cuenta que se utiliza la misma contraseña para la inicialización del almacén de claves.
Así que asegúrese de conocer la contraseña de su certificado, se usa tanto en el almacén de claves original «su-certificado.p12» como en el almacén de claves de destino «keycloak.jks».
Ahora, con su certificado actualizado descargado (o generado en el mismo servidor), puede usar el siguiente comando para actualizar el almacén de claves de Java utilizado por el servicio de autenticación:
/usr/sap/SAPBusinessOne/Common/sapmachine_11/bin/keytool \
-importkeystore \
-deststorepass "VerySecretP@ssword" \
-destkeypass "VerySecretP@ssword" \
-destkeystore /usr/sap/SAPBusinessOne/Common/keycloak/standalone/configuration/keycloak.jks \
-srckeystore your-certificate.p12 \
-srcstoretype PKCS12 \
-srcstorepass "VerySecretP@ssword" \
-alias 1 \
-noprompt
Por supuesto, puede omitir las barras invertidas si escribe el comando en una sola línea.
Una vez que se complete con éxito, simplemente reinicie el servicio de autenticación:
service sapb1servertools-authentication restart
Y deberías estar listo para irte.
Si desea verificar que el servicio responde con el certificado renovado, puede usar el siguiente comando:
openssl s_client \
-showcerts \
-servername localhost \
-connect localhost:40020 </dev/null 2>/dev/null \
| openssl x509 -text \
| sed -n "s/^.*Not After : \(.*\)$/\1/p"
Esto es lo que debería ver, confirmando que el certificado implementado es válido hasta el 21 de abril de 2023, en este caso:
¡Espero que esta información sea útil!
Todo lo mejor,
Joerg.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073