2017-06-21 1 views
0

ich mit einer neuen Umgebung die Hilfe benötigen, die ich Einstellung bin bistcps Orakel tomcat Thin-Treiber funktioniert nicht

Tomcat (wallet + jdbc Thin-Treiber) -> TCPS -> Oracle 12

Ich war folgende Beitrag (Oracle JDBC thin driver SSL) ohne Glück

Wenn ich versuche, Tomcat Start-up, wird der folgende Fehler

Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128 
    at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:189) 
    at java.security.Signature$Delegate.engineVerify(Signature.java:1219) 

gezeigt ich glaube, ich bin etwas fehlt, aber ich k nicht jetzt, wo ..

Oracle Seite

listener.ora

WALLET_LOCATION = 
    (SOURCE = 
    (METHOD = FILE) 
    (METHOD_DATA = 
     (DIRECTORY = /u01/app/oracle/wallet) 
    ) 
) 

SSL_CLIENT_AUTHENTICATION = FALSE 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = 72795752816f)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
     (ADDRESS = (PROTOCOL = TCPS)(HOST = 72795752816f)(PORT = 2484)) 
    ) 
) 
ADR_BASE_LISTENER = /u01/app/oracle 

sqlnet.ora

WALLET_LOCATION = 
    (SOURCE = 
    (METHOD = FILE) 
    (METHOD_DATA = 
     (DIRECTORY = /u01/app/oracle/wallet) 
    ) 
    ) 

SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ) 
SSL_CLIENT_AUTHENTICATION = FALSE 
SSL_CIPHER_SUITES = (SSL_RSA_WITH_RC4_128_SHA,  SSL_RSA_WITH_RC4_128_MD5) 

SQLNET.WALLET_OVERRIDE = TRUE 

Tomcat Side

tnsnames.ora

TEST = 
(DESCRIPTION = 
    (ADDRESS = 
    (PROTOCOL = TCPS) 
    (HOST = 72795752816f) 
    (PORT = 2484) 
) 
    (CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = xe.oracle.docker) 
    ) 
) 

context.xml

<Resource name="jdbc/edorasone" auth="Container" 
      type="javax.sql.DataSource"  driverClassName="oracle.jdbc.OracleDriver" 
     url="jdbc:oracle:thin:/@TEST" 
    connectionProperties="javax.net.ssl.keyStore=/tomcat/wallet/cwallet.sso;\ 
javax.net.ssl.keyStoreType=PCKS12;\ 
oracle.net.ssl_version=1.0;\ 
oracle.net.ssl_cipher_suites=(SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5);\ 
oracle.net.authentication_services=(TCPS)" 
/> 

Jede mögliche Hilfe

Dank in adva

Nacho sehr zu schätzen wissen werden.

BTW: Wenn ein sqlplus-Client in Tomcat mit der sqlnet.ora (= Oracle) & tnsnames.ora (= Tomcat) verwenden, kann ich keine Probleme verbinden.

Antwort

0

(a) Haben Sie zusätzliche Gläser für die Verwendung von Oracle Wallets? (oraclepki.jar, osdt_core.jar, osdt_cert.jar)?
(2) Korrigieren Sie den javax.net.ssl.keyStoreType = PKCS12. Du hast einen Tippfehler dort.
(3) Die DB-URL sollte "jdbc: oracle: thin: @TEST" sein, und da Sie einen Alias ​​verwenden, müssen Sie eine Systemeigenschaft festlegen -Doracle.net.tns_admin = (a) Benötigen Sie weitere JAR-Dateien? für die Verwendung von Oracle Brieftaschen? (oraclepki.jar, osdt_core.jar, osdt_cert.jar)?

Überprüfen Sie die SSL with JDBC whitepaper für weitere Details.

0

Vielen Dank für Ihre Hilfe. a) Ja, sie waren an Ort und Stelle b) Sie arbeitet mit PCKS12 c) TNS_ADMIN in das setenv.sh Skript war

Endlich habe ich mein Set-up jetzt arbeiten.

SSL_CIPHER_SUITES müssen auf beiden Seiten übereinstimmen, also was ich tat, war die gleiche Chiffre

sqlnet.ora

SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA) 

setenv zu erzwingen.sh

CATALINA_OPTS+=" -Doracle.net.ssl_cipher_suites=TLS_RSA_WITH_AES_256_CBC_SHA " 

(Hinweis auf das Präfix ist nicht das gleiche: SSL_ in Oracle Seite und TLS_ in Tomcat/Java Seite)

Für jene diejenigen mit Problemen mit ähnlichen Konfigurationen ,, Ich ließ den Tomcat-Config Seite hier

############################### 
# DB CONNECTION CONFIGURATION # 
############################### 
# Oracle DB (JNDI) 
CATALINA_OPTS+=" -Dspring.profiles.active=database-jndi " 
CATALINA_OPTS+=" -Doracle.net.tns_admin=/tomcat/wallet " 
CATALINA_OPTS+=" -Djavax.net.ssl.keyStore=/tomcat/wallet/keystore.jks " 
CATALINA_OPTS+=" -Djavax.net.ssl.keyStoreType=JKS " 
CATALINA_OPTS+=" -Djavax.net.ssl.keyStorePassword=Passw0rd " 
CATALINA_OPTS+=" -Djavax.net.ssl.trustStore=/tomcat/wallet/truststore.jks "  
CATALINA_OPTS+=" -Djavax.net.ssl.trustStorePassword=Passw0rd "     
CATALINA_OPTS+=" -Doracle.net.authentication_services=TCPS " 
CATALINA_OPTS+=" -Doracle.net.ssl_cipher_suites=TLS_RSA_WITH_AES_256_CBC_SHA " 

context.xml

<Resource name="jdbc/efdesone" auth="Container" 
     type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" 
     url="jdbc:oracle:thin:/@TEST" 
    username="<username>" password="<password>" maxActive="20" maxIdle="10" maxWait="-1" 
/> 

Mit freundlichen Grüßen

Nacho.

Verwandte Themen