Skip to content

Instantly share code, notes, and snippets.

@kopsondropson
Last active May 3, 2024 16:27
Show Gist options
  • Save kopsondropson/807671349739e2eada966834d2af080b to your computer and use it in GitHub Desktop.
Save kopsondropson/807671349739e2eada966834d2af080b to your computer and use it in GitHub Desktop.
How to connect with REST web service over HTTPS

Intro

Lets say we want to connect with api.nbp.pl over HTTPS in Oracle APEX application or in Oracle DB scheme.

Get root certificate

OpenSSL

Input:

$ openssl s_client -connect api.nbp.pl:443 -showcerts

Output:

CONNECTED(00000003)
depth=2 C = PL, O = Unizeto Technologies S.A., OU = Certum Certification Authority, CN = Certum Trusted Network CA
verify return:1
depth=1 C = PL, O = Unizeto Technologies S.A., OU = Certum Certification Authority, CN = Certum Organization Validation CA SHA2
verify return:1
depth=0 C = PL, ST = mazowieckie, L = Warszawa, O = Narodowy Bank Polski, CN = *.nbp.pl
verify return:1
---
Certificate chain
 0 s:/C=PL/ST=mazowieckie/L=Warszawa/O=Narodowy Bank Polski/CN=*.nbp.pl
   i:/C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Organization Validation CA SHA2
-----BEGIN CERTIFICATE-----
MIIGszCCBZugAwIBAgIQblOMCx2tprI409swt+qqFDANBgkqhkiG9w0BAQsFADCB
izELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0G
A1UEAxMmQ2VydHVtIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIENBIFNIQTIwHhcN
MTkxMTA1MTAxODI0WhcNMjExMTA0MTAxODI0WjBoMQswCQYDVQQGEwJQTDEUMBIG
A1UECAwLbWF6b3dpZWNraWUxETAPBgNVBAcMCFdhcnN6YXdhMR0wGwYDVQQKDBRO
YXJvZG93eSBCYW5rIFBvbHNraTERMA8GA1UEAwwIKi5uYnAucGwwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnGRZ69Myi5T4ppCYv+AGSjMhu5pJke2yl
hTIDEowrkImbq0MAS3EKxdgNtVsNw5N8Fze+o4DqQ5Vxe2IYK4xoWdN5DVaIgKKL
8+WKNjGUE93zSAzLBFjRktR11kiIlgfe+SxzeXbLWpKy+TQJDgN8K3lGndiGiDp2
ew2SL5513BGbg09dWYBculHlToHdGcRMRbRJWcYlESdfoWt8FKMvy5jt410Nz+1i
7I6wKrsfg5PD5tIOl9VOhlQCv0VrQN/0AeG4s9nyPh1fDYgoWVOB9tgYNGy2KW2i
/tg9SLQq38kpmvoe+3/3WontQ81+LVUDYaDTOnJsxwQG34bI5ceHAgMBAAGjggMz
MIIDLzAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFO7t6FRgEws1g6D6a3pGOvc+
MLtmMB0GA1UdDgQWBBRjdxXBl/Vp3uU4IMRtoKyMbugCZjAdBgNVHRIEFjAUgRJv
dmNhc2hhMkBjZXJ0dW0ucGwwcQYIKwYBBQUHAQEEZTBjMCsGCCsGAQUFBzABhh9o
dHRwOi8vb3ZjYXNoYTIub2NzcC1jZXJ0dW0uY29tMDQGCCsGAQUFBzAChihodHRw
Oi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvb3ZjYXNoYTIuY2VyMEsGA1UdIAREMEIw
CAYGZ4EMAQICMDYGCyqEaAGG9ncCBQECMCcwJQYIKwYBBQUHAgEWGWh0dHBzOi8v
d3d3LmNlcnR1bS5wbC9DUFMwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC5j
ZXJ0dW0ucGwvb3ZjYXNoYTIuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjAOBgNVHQ8BAf8EBAMCBaAwGwYDVR0RBBQwEoIIKi5uYnAucGyCBm5icC5w
bDCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHYA7ku9t3XOYLrhQmkfq+GeZqMP
fl+wctiDAMR7iXqo/csAAAFuOw4KPAAABAMARzBFAiAD80EWpisNZZ7CfXWhjbw3
PARI0JWC2QmWJqVq6ecYEgIhAIj6c2NcGg65w0KxHC/1vxzFatYrFZO/t7v2vmDG
41nzAHYApLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFuOw4I4gAA
BAMARzBFAiEA+2q9hRav++xOReGNn3UvoYVj/rPJClTdtNqQwjlEv8wCICtVyGsu
YdooOiqEh8g+6STxwaswlJQQJP0DVeyyZmThAHYAVYHUwhaQNgFK6gubVzxT8MDk
OHhwJQgXL6OqHQcT0wwAAAFuOw4F5AAABAMARzBFAiABmkeP4LPLv2saLMMztKfY
M8FuEqjF7Rf8RCXwQxGZVQIhAOxIN3rBUMbEHIDssZpXxylVEfoiaFjR9DY0eyU6
FMrYMA0GCSqGSIb3DQEBCwUAA4IBAQC07QkQlF0Em4Zv1tX+JBex/K9BdKqmdDpO
TSxcHqMEy4HOVBmWtmuuBw7gDzPz4PYEydVRwVLGX6/eMCr7TUiCqQDTVkaoiZR7
o4vz5Yl9XWF0ZKdR/TZqY56or+kbSPYBBg2BvCAMN/OAGIAHqjcU7qLmhDc5mRfr
AkVtc3UHSA604E0x/CF6kod3ML4xW45SE5r6/MPrZ/ElHArBbp1M0yHMDvVl9Gr4
p3nKAPv5B9MZXchmkE4V5C1vUHrv9YtZbvIzNopPMxb/jT3CHLe+dCljiOAtQMa3
zVXiMeVeHPXnREuaxWUHsT4DineYSt88RHmNcMp+aq8o/oHA/9ee
-----END CERTIFICATE-----
 1 s:/C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Organization Validation CA SHA2
   i:/C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Trusted Network CA
-----BEGIN CERTIFICATE-----
MIIE1TCCA72gAwIBAgIRALWtD2OFTMRiLks5I7KQAhYwDQYJKoZIhvcNAQELBQAw
fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTAeFw0xNDA5MTExMjAwMDBa
Fw0yNzA2MDkxMDQ2MzlaMIGLMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0
byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRp
b24gQXV0aG9yaXR5MS8wLQYDVQQDEyZDZXJ0dW0gT3JnYW5pemF0aW9uIFZhbGlk
YXRpb24gQ0EgU0hBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQu
1QDMW2HpTB+NQ14+w+dvSV0k/bXvNTz9K6KrTKgXDm1eJZ44QNMo9Hb5230nvrJh
wenVEmOsJRD/Ux/oSGDASK58+ckfgY8CeMMsk7rNkwAlBgDp3mBpdhBADMFevgxb
B+ADq01B91Mit5Tbkc2wP1VlMr2bglVZxmGS39NjpwFRmrzEdxpWdWSX48Ksowt7
QH7QGQ0Af/972ZIam1ctsRGcOkA5h6t/iZXlV5Y2+H4/4pcr4uF4z30I5VHyJWqx
dhbFlaBnmnj/ChLa4wdpObqZl7IUz3MOBioMzH8DyiuEAZ5O1+wPALidIlc3GbVJ
gl6/SwKwh4O4EywWxZMCAwEAAaOCAT4wggE6MA8GA1UdEwEB/wQFMAMBAf8wHQYD
VR0OBBYEFO7t6FRgEws1g6D6a3pGOvc+MLtmMB8GA1UdIwQYMBaAFAh2zcsH/yT2
xc3tu5C84oQ3RnX3MA4GA1UdDwEB/wQEAwIBBjAvBgNVHR8EKDAmMCSgIqAghh5o
dHRwOi8vY3JsLmNlcnR1bS5wbC9jdG5jYS5jcmwwawYIKwYBBQUHAQEEXzBdMCgG
CCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1jZXJ0dW0uY29tMDEGCCsGAQUF
BzAChiVodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvY3RuY2EuY2VyMDkGA1Ud
IAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3LmNlcnR1bS5w
bC9DUFMwDQYJKoZIhvcNAQELBQADggEBACNWGnCyexPgGwHHefwKh8dJHoTEPxbM
M7C2+8tFUiTHKroVdqfPHywdmZ7k0H/0lm0uP1wlcbj1k/dLPb4gugp0UYNB7qk8
os22unSI9Yy/1xpMqNH9Udg7zK4F81YC2YtD942HVWQ1/8GYRNWbMmZmPSJ8ijXz
G6xOSIu3WZgh+qm/B5UpdA1kVXeWL6IcGIj5vnNVwVQiSRroPT+qqHcgVxrs5IAj
BFUNKdQQrInpvGFqiQ8uwOde6gp58IpH1e1h8DIoc/vNa9v/7lZ5s48Q172lFkug
v4FHHMdGV2C1grGQtXyS876ZGk9D5b9Q+SerjBC80hlfGAOt96PK+j0=
-----END CERTIFICATE-----
 2 s:/C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Trusted Network CA
   i:/C=PL/O=Unizeto Sp. z o.o./CN=Certum CA
-----BEGIN CERTIFICATE-----
MIIEtDCCA5ygAwIBAgIRAJOShUABZXFflH8oj+/JmygwDQYJKoZIhvcNAQELBQAw
PjELMAkGA1UEBhMCUEwxGzAZBgNVBAoTElVuaXpldG8gU3AuIHogby5vLjESMBAG
A1UEAxMJQ2VydHVtIENBMB4XDTA4MTAyMjEyMDczN1oXDTI3MDYxMDEwNDYzOVow
fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAOP7faNyusLwyRSH9WsBTuFuQAe6bSddf/dbLbNax1Ff
q6QypmGHtm4PhtIwApf412lXoRg5XWpkecYBWaw8MUo4fNIE0kso6CBfOweizE1z
2/OuT8dW1Vqnlon686to1COGWSfPCSe8rG5ygxwwct/gounS4XR1Gb0qnnsVVAQb
10M5rVUoxeIau/TA5K44STPMdoWfOUXSpJ7yEoxR+HzkLX/1rF/rFp+xLdG6zJFC
d0wlyZA4b9vwzPuOHpdZPtVgTuYFKO1JeRNLukjbL/ly0znK/h/YNHL1tEDPMQHD
7N4RLRddH7hQ0V4Zp2neBzMoylCV+adUy1SGUEWp+UkCAwEAAaOCAWswggFnMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAh2zcsH/yT2xc3tu5C84oQ3RnX3MFIG
A1UdIwRLMEmhQqRAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNw
LiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQYIDAQAgMA4GA1UdDwEB/wQEAwIB
BjAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vY3JsLmNlcnR1bS5wbC9jYS5jcmww
aAYIKwYBBQUHAQEEXDBaMCgGCCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1j
ZXJ0dW0uY29tMC4GCCsGAQUFBzAChiJodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0u
cGwvY2EuY2VyMDkGA1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRw
Oi8vd3d3LmNlcnR1bS5wbC9DUFMwDQYJKoZIhvcNAQELBQADggEBAI3m/UBmo0yc
p6uh2oTdHDAH5tvHLeyDoVbkHTwmoaUJK+h9Yr6ydZTdCPJ/KEHkgGcCToqPwzXQ
1aknKOrS9KsGhkOujOP5iH3g271CgYACEnWy6BdxqyGVMUZCDYgQOdNv7C9C6kBT
Yr/rynieq6LVLgXqM6vp1peUQl4E7Sztapx6lX0FKgV/CF1mrWHUdqx1lpdzY70a
QVkppV4ig8OLWfqaova9ML9yHRyZhpzyhTwd9yaWLy75ArG1qVDoOPqbCl60BMDO
TjksygtbYvBNWFA0meaaLNKQ1wmB1sCqXs7+0vehukvZ1oaOGR+mBkdCcuBWCgAc
eLmNzJkEN0k=
-----END CERTIFICATE-----
 3 s:/C=PL/O=Unizeto Sp. z o.o./CN=Certum CA
   i:/C=PL/O=Unizeto Sp. z o.o./CN=Certum CA
-----BEGIN CERTIFICATE-----
MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
6GAqm4VKQPNriiTsBhYscw==
-----END CERTIFICATE-----
---
Server certificate
subject=/C=PL/ST=mazowieckie/L=Warszawa/O=Narodowy Bank Polski/CN=*.nbp.pl
issuer=/C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Organization Validation CA SHA2
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 5468 bytes and written 415 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 346A72C860478A1460A5062B71E5BE04B6E0EFDBAF0F287666F3A53FA9165839
    Session-ID-ctx:
    Master-Key: 53C40016CB847EBF88B704348C01C618E2BC88C41BA945243DF5D9ECAB13AE3A58BDBC94FA0FE8CE0CB017392C596998
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1612878668
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
HTTP/1.0 408 Request Time-out
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>
closed

We need only the root certificate, not the whole chain. In this case root certificate is the last one. Just copy it and paste to separate file (e.q. nbp.cer).

nbp.cer:

-----BEGIN CERTIFICATE-----
MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
6GAqm4VKQPNriiTsBhYscw==
-----END CERTIFICATE-----

Web browser (Chrome)

  1. Go to api.nbp.pl.

  2. Click the padlock icon (on the left side of url bar), then click Certificate.

    image-20210209145534766

  3. In a new popup window, select Certificate path tab, then select certificate on the top of certificate tree. Next click Display certificate button. image-20210209150028279

  4. In another new popup window select Details tab, then click Copy to file... button.image-20210209150149494

  5. It launches certificate export wizard. Click Next.

  6. Select select second option (X.509 certificate encrypted with Base-64 (CER)), then click Next.

  7. Put file name for exported certificate (e.g. nbp.cer), then click Next button.

  8. Click Finish button.

Wallet (orapki)

Create new wallet

  1. Lets create a new walled `wallet```

    orapki wallet create -wallet /opt/wallet -pwd wallet_password -auto_login

  2. Change owner of directory /opt/wallet and all files in it.

    chown -R oracle:oinstall /opt/wallet

Add certificate

orapki wallet add -cert /path/to/nbp.cer -trusted_cert -wallet /opt/wallet

Permissions

Grant execute permissions on UTL_HTTP and UTL_TCP packages to target schema. If you want to connect with REST web service in you APEX application, then you have to grant those permissions to APEX schema (e.g. for APEX 20.2 schema name is APEX_200200).

grant execute on sys.utl_http to YOUR_SCHEMA;
grant execute on sys.utl_tcp to YOUR_SCHEMA;

ACL

Create

Lets create a new ACL nbp.xml, add privileges to your schema (and / or APEX schema) and open HTTPS port (443).

begin
	dbms_network_acl_admin.create_acl (
        acl         => 'nbp.xml',
        description => 'Connect with api.nbp.pl over HTTPS',
        principal   => 'YOUR_SCHEMA',
        is_grant    => TRUE,
        privilege   => 'connect',
        start_date  => null,
        end_date    => null
    );
    dbms_network_acl_admin.add_privilege(
		acl			=> 'nbp.xml',
		principal	=> 'YOUR_SCHEMA',
		is_grant	=> TRUE,
		privilege	=> 'resolve'
    );
    dbms_network_acl_admin.add_privilege(
		acl			=> 'nbp.xml',
		principal	=> 'YOUR_SCHEMA',
		is_grant	=> TRUE,
		privilege	=> 'use-passwords'
    );
    dbms_network_acl_admin.add_privilege(
		acl			=> 'nbp.xml',
		principal	=> 'YOUR_SCHEMA',
		is_grant	=> TRUE,
		privilege	=> 'use-client-certificates'
    );
    dbms_network_acl_admin.assign_acl (
        acl			=> 'nbp.xml',
        host		=> 'api.nbp.pl',
        lower_port	=> 443,
        upper_port	=> 443
    );
end;
/

commit;

Assign wallet

Assign /opt/wallet to nbp.xml ACL.

begin
	dbms_network_acl_admin.assign_wallet_acl (
		acl			=> 'canbi_acl.xml',
		wallet_path => 'file:/opt/wallet'
    );
end;
/

commit;

Test connection

Connect to your scheme, and execute query below.

select apex_web_service.make_rest_request(
		p_url			=> 'https://api.nbp.pl/api/exchangerates/tables/A',
		p_http_method	=> 'GET',
		p_wallet_path	=> 'file:/opt/wallet',
		p_wallet_pwd	=> 'password'
	)
from dual;

image-20210209153753833

Integrate with APEX

Set wallet to APEX instance

  1. Log-in toINTERNAL workspace.

  2. Go to Manage Instance > Instance Settings > Wallet.

  3. Set Wallet Path and Wallet Password. image-20210209154250288

  4. Click Apply Changes button.

Connect in APEX app

  1. Log-in to your worskpace.

  2. Create new application or go to existing one in App Builder.

  3. Go to Shared Components > Data Sources > REST Data Sources.

  4. Click Create button.

  5. In wizard popup window select From scratch option then click Next button.

@thegausiantheory
Copy link

One of the easiest tutorials for setting up a REST API HTTPS endpoint connectivity with APEX. Thanks!!!

@liuhao12138-beep
Copy link

thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment