كيفية إجراء طلب HTTPS في Go باستخدام شهادة ذاتية التوقيع أو غير صالحة؟
مرحباً بالجميع! أنا مبتدئ في Go وأعمل على مشروع يتطلب إرسال طلبات HTTPS إلى خادم تطوير داخلي. المشكلة هي أن هذا الخادم يستخدم شهادة SSL ذاتية التوقيع، وGo يرفض افتراضياً مثل هذه الاتصالات مع خطأ x509: certificate signed by unknown authority.
الكود الحالي الخاص بي يبدو كالتالي:
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp, err := http.Get("https://internal-dev.example.com/api/data")
if err != nil {
fmt.Println("خطأ:", err)
return
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
أنا أدرك أن هذه ممارسة سيئة للإنتاج، لكن للتطوير المحلي أحتاج مؤقتاً إلى تجاهل التحقق من الشهادة. حاولت البحث في التوثيق، لكن هناك العديد من الهياكل المعقدة مثل http.Transport و tls.Config.