Con el sslValidateCertificate
establecido en True, el cliente de SAP HANA intenta validar el certificado del servidor mientras se conecta. Para hacerlo, el cliente debe tener acceso al certificado raíz de la autoridad de certificación que firmó el certificado del servidor.
Si aún no está establecido en Verdadero, cambie el sslValidateCertificate
Verdadero parámetro.
Si ejecuta su código ahora, es probable que vea algo como el resultado a continuación. Tenga en cuenta que cuando se conecta a HANA como un servicio de Windows, el certificado raíz de la autoridad de certificación se instala de forma predeterminada y está disponible para el cliente SAP de HANA.
Traceback (most recent call last):
File "secure_conn.py", line 8, in <module>
ENCRYPT=True
hdbcli.dbapi.Error: (-10709, 'Connection failed (RTE:[300010]
Cannot create SSL context: SSL trust store cannot be found:
/home/userX/.ssl/trust.pem (zeus.SAP HANA.prod.us-east-1.whitney.dbaas.ondemand.com:208xx))')
Si ve este error, especifique dónde obtener el certificado original de la autoridad certificadora que firmó el certificado del servidor de la base de datos. Para SAP HANA as a Service, es la autoridad de certificación DigiCert.
El proceso es diferente entre Windows y Mac / Linux.
Compruebe para ver si el DigiCert Global Root CA
instalado en Windows.
Si no, descarga DigiCertGlobalRootCA.crt y luego haga clic derecho para instalarlo.
Si ve una advertencia de seguridad, haga clic en Abierto.
Puede instalar el certificado para el usuario actual o la máquina local.
Instale el certificado en Autoridades de certificación raíz de confianza.
Complete la instalación haciendo clic en Finalizar.
Después de instalar el certificado y habilitar la validación del certificado SSL, debería ver algo similar al resultado a continuación.
python pythonQuery.py
Connection to SAP HANA Service successful.
SID = H00
Database Name = H00
Version = 2.00.040.00.1554459575
Para especificar un proveedor de cifrado, se puede utilizar el siguiente parámetro. Tenga en cuenta que el valor predeterminado mscrypto
en Windows. En la siguiente sección, esto se cambiará para usar la biblioteca de cifrado común de SAP.
sslCryptoProvider='mscrypto',
Descargar DigiCertGlobalRootCA.crt.pem.
Coloque el archivo donde el cliente SAP HANA busca el certificado predeterminado como se especifica en el mensaje de error, como
/Users/userX/.ssl/trust.pem
o
/home/userX/.ssl/trust.pem
.
Tenga en cuenta que debe cambiar el nombre del archivo a trust.pem
.
Crea la carpeta .ssl
si aún no existe.
Si un .crt
archivo, se puede convertir a .pem
archivo con el siguiente comando.
openssl x509 -inform der -in DigiCertGlobalRootCA.crt -out trust.pem
Después de colocar el certificado en el lugar predeterminado, el resultado ahora debería ser el siguiente.
Connection to SAP HANA Service successful.
SID = H00
Database Name = H00
Version = 2.00.040.00.1554459575
Si desea utilizar una ruta personalizada para su certificado, se puede utilizar el siguiente parámetro.
sslTrustStore='<Path to certificate>'
Para especificar un proveedor de cifrado, se puede utilizar el siguiente parámetro. Tenga en cuenta que el valor predeterminado openssl
en Mac y Linux. En la siguiente sección, esto se cambiará para usar la biblioteca de cifrado común de SAP.
sslCryptoProvider='openssl'