Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Connection reset: set up Oracle SSL in docker

I am setting up an Oracle SSL instance inside a docker.

I am using this docker image: https://hub.docker.com/r/rafaelmariotti/oracle-ee-11g/

after set up the docker machine, etc, run the instance like this: $docker run -d -p 1521:1521 -p 2484:2484 d03c4f0a4743

Then I ssh into the docker instance: $docker exec -it xxxxxxxxxx /bin/bash

Modified the listener.ora file:

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
    )
    #(DESCRIPTION =
    #  (ADDRESS = (PROTOCOL = TCPS)(HOST = )(PORT = 2484))
    #)
)

ADR_BASE_LISTENER = /home/oracle/app/oracle

The line starts with # are lines that I added, but not commented out in the actual file.

Not if I connect to the instance, port 1521 returns correct, but port 2484 directly returns: IO Error: Connection reset java.net.SocketException: Connection reset

But if I change the added line by replacing TCPS to TCP

(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 2484))

Then the error will be something like ORA-xxxxx

So it seems that the PROTOCOL = TCPS brings in the issue

Anybody can help?

Thanks!

like image 254
yangyang Avatar asked Oct 16 '25 14:10

yangyang


1 Answers

I ran docker instance for 12c with

docker run -t -p 1532:1532 -p 1521:1521 -e ORACLE_SID=APITST -e ORACLE_PWD=pswd -v /Users/apuliyeril/anilfolder/docker/mounts/oracle:/opt/oracle/oradata oracle/database:12.1.0.2-ee

connected to the instance with

docker exec -it friendly_khorana /bin/bash

ran following to create a wallet

orapki wallet create -wallet /opt/oracle/admin/APITST/xdb_wallet -pwd WalletPasswd123 -auto_login_local
orapki wallet add -wallet /opt/oracle/admin/APITST/xdb_wallet  -pwd WalletPasswd123   -dn "CN=`hostname`" -keysize 1024 -self_signed -validity 3650
orapki wallet display -wallet /opt/oracle/admin/APITST/xdb_wallet -pwd WalletPasswd123
orapki wallet export -wallet /opt/oracle/admin/APITST/xdb_wallet -pwd WalletPasswd123 -dn "CN=`hostname`" -cert /tmp/15e31b633912-certificate.crt

edited the .ora files as

==> listener.ora <==

SSL_CLIENT_AUTHENTICATION = FALSE

WALLET_LOCATION =
  (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
      (DIRECTORY = /opt/oracle/admin/APITST/xdb_wallet)
    )
  )

LISTENER =
(DESCRIPTION_LIST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  )
  (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCPS)(HOST = 0.0.0.0)(PORT = 1532))
   )
)

DEDICATED_THROUGH_BROKER_LISTENER=ON
DIAG_ADR_ENABLED = off

==> sqlnet.ora <==

WALLET_LOCATION =
   (SOURCE =
     (METHOD = FILE)
     (METHOD_DATA =
       (DIRECTORY = /opt/oracle/admin/APITST/xdb_wallet)
     )
   )

SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS,BEQ)
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA)

==> tnsnames.ora <==

APITST=
(DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCPS)(HOST = 0.0.0.0)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = APITST)
  )
)

To connect with sqldeveloper

keytool -import -trustcacerts -alias oracle3 -file 15e31b633912-certificate.crt -keystore /u01/keystore/OracleTrustStore.jks

Update SqlDeveloper.conf /Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf

AddVMOption -Djavax.net.ssl.trustStore=/u01/keystore/OracleTrustStore.jks
AddVMOption -Djavax.net.ssl.trustStorePassword=welcome1234
AddVMOption -Djavax.net.ssl.trustStoreType=JKS

To connect from sqldevloper restart sqldeveloper and use the advanced option in sqldeveloper

enter image description here

like image 196
Anil Puliyeril Avatar answered Oct 19 '25 08:10

Anil Puliyeril