Groovy script’inde SSL doğrulamasını devre dışı bırakan bir işlev eklemek, özellikle güvenli olmayan test ortamlarında veya doğrulama sürecinin istenmediği durumlarda kullanılabilir. Ancak, bu işlevin yanlış kullanılması güvenlik açıklarına yol açabileceğinden dolayı dikkatli bir şekilde ve yalnızca gerekli durumlarda kullanılmalıdır.
Aşağıdaki disableSSLVerification
işlevi, Groovy kullanılarak SSL doğrulamasını devre dışı bırakmak için tasarlanmıştır. Bu işlev, bağlantılar sırasında SSL sertifikalarını ve ana bilgisayar adlarını (hostname) doğrulamadan geçiş sağlar.
Aşağıdaki metot eklenip connection açmadan önce çağrılarak PKIX hatası atlatılır.
import javax.net.ssl.*
import java.security.cert.X509Certificate
def disableSSLVerification() {
TrustManager[] trustAllCerts = [
[
checkClientTrusted: { X509Certificate[] certs, String authType -> },
checkServerTrusted: { X509Certificate[] certs, String authType -> },
getAcceptedIssuers: { null }
] as X509TrustManager
]
SSLContext sc = SSLContext.getInstance("SSL")
sc.init(null, trustAllCerts, new java.security.SecureRandom())
HttpsURLConnection.setDefaultSSLSocketFactory(sc.socketFactory)
HttpsURLConnection.setDefaultHostnameVerifier({ hostname, session -> true } as HostnameVerifier)
}
GROOVY