Skip to content

Instantly share code, notes, and snippets.

@Yotamho
Last active November 1, 2020 09:27
Show Gist options
  • Select an option

  • Save Yotamho/9239d921413a5979a6430bd9ed242f70 to your computer and use it in GitHub Desktop.

Select an option

Save Yotamho/9239d921413a5979a6430bd9ed242f70 to your computer and use it in GitHub Desktop.
object SslContextAltering {
def updateGlobalSsl = {
val certStr =
"""
|-----BEGIN CERTIFICATE-----
|MIICwzCCAaugAwIBAgIJAL1OEIqJjvZRMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
|BAMTCWxvY2FsaG9zdDAeFw0yMDEwMjgxNTE0NThaFw0zMDEwMjYxNTE0NThaMBQx
|EjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|ggEBAMkf8CZbezSszs/H5UEVLg0HPPqfpyHUx1OGaUcrmh7VxY47Gmp08Z3ynBjs
|K0efNORciFj0NTpkwidYqRdEiVLViurNLrugFiUaIWwEyNQUyTTfHIHJN1CtHwyw
|hbcVEg8qHAVHl4+8PjSV/rS19ZRDCL7pfAYvfEbDgmcP6NyHOrkqNlWBYmycCUd6
|1jr+KFu0CrAYPYSMOQCCU5rSGlKLVoitsCeDpspZy9aZJIA1R06gCUSo6PLRWrLN
|Wu4TPH80xEMCb9dfcaTjuW0i8yBAMly/itMCQn1uh1y8H96ZghGisUxf15ilMjVf
|Ga6l499Ph9tQrHDTbm+rAf2bcS0CAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxo
|b3N0MA0GCSqGSIb3DQEBBQUAA4IBAQA0Eb3H7QFt/C0ZOaMKUw295J3NJG0JRRXx
|VBCpaURcxZ42tbHHG/G1nmteNxdw5k/wik/nZXk/Ecpf0WNX4bMtoBuUpwNbru+1
|YXAB/QUOjb5Tg/pbJFj/rPq7nrPdtCju+3PQlqoVwjRcIAXEbiWB4tyLhXqR8FTP
|TGNu1R26dD5h2PrcEE5gRr+fAOAWgh7jJD73rTWwq2klSmpTHu/MM6AW5ArbYAPJ
|3EQoXMxrjlWei/TxLqMNdh+YKKk0NMuaKGSgP45zKwlyaEPqYpAM4oD1zQisRP7J
|bghz8YCxzWSLj84Cs0QX8Ma5ducafIdNi/5zoDv6q1HTGA8KqMPj
|-----END CERTIFICATE-----
""".stripMargin
val certIs = new ByteArrayInputStream(certStr.getBytes(StandardCharsets.UTF_8))
val ca = CertificateFactory.getInstance("X.509").generateCertificate(certIs).asInstanceOf[X509Certificate]
val ks = KeyStore.getInstance(KeyStore.getDefaultType)
ks.load(null, null)
ks.setCertificateEntry(Integer.toString(1), ca)
val tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm)
tmf.init(ks)
val newContext = SSLContext.getInstance("TLS")
newContext.init(null, tmf.getTrustManagers, null)
SSLContext.setDefault(newContext)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment