Tôi có một số vấn đề với cấu hình http Akka ở phía máy khách. Tôi đang cố gắng kết nối với máy chủ không cung cấp: - chứng chỉ đã ký công khai - chứng chỉ tương ứng với tên máy chủ Tôi không có mặt trên nginx này nên tôi không thể thay đổi cấu hình phía máy chủ. Tôi chỉ có thể thay đổi phía khách hàng.vấn đề http SSLConfig akka với xác minh tên máy chủ và xác thực chứng chỉ
Sau rất nhiều cuộc điều tra về cấu hình SSL, tôi đã phát hiện ra rằng tôi cần phải cấu hình tùy chọn SSL trong application.conf ở hai cấp độ khác nhau:
akka.ssl-config.ssl.loose.acceptAnyCertificate=true
akka.ssl-config.loose.disableHostnameVerification = true
và
ssl-config.loose.acceptAnyCertificate=true
ssl-config.loose.disableHostnameVerification = true
Tôi có kiểm tra cấu hình là tốt với
log-config-on-start = "on"
Vấn đề là tôi vẫn nhận được lỗi ở cấp AKKA debug (không phải là rất rõ ràng)
[ingestionApiClient-akka.actor.default-dispatcher-13] [akka://ingestionApiClient/user/StreamSupervisor-0/flow-216-1-unknown-operation] closing output
Nhìn vào Wireshark Tôi đã tìm thấy đó là một vấn đề xác nhận giấy chứng nhận
TLSv1 Record Layer: Alert (Level: Fatal, Description: Certificate Unknown)
Tôi cho rằng cấu hình JVM đang giám sát tất cả những gì tôi đã làm để tôi cũng cố gắng làm theo phương pháp này để sửa đổi cấu hình JVM SSL: Java SSL: how to disable hostname verification
Không có vấn đề gì với cấu hình SSLContext và chuyển nó sang akka http vì tôi có thể đặt mặc định HttpsContext với
val sc = SSLContext.getInstance("TLS")
*...configuration...*
val customContext =HttpsContext(sc, sslParameters = Some(params))
Http().setDefaultClientHttpsContext(customHttpsContext)
Nhưng tôi không thể tìm thấy cách nào để định cấu hình trình xác minh tên máy chủ mặc định. Lớp Http không có bất kỳ phương pháp như Http().setDefaultHostnameVerifier
này như thế nào tôi kết nối đến máy chủ
val dataIngestFlow = Http().outgoingConnectionTls(config.httpEndpointHost,config.httpEndpointPort)
Làm thế nào tôi có thể đạt được điều này? Cảm ơn rất nhiều sự giúp đỡ của bạn