亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Heroku丟失了GeoTrust Global CA根證書

Heroku丟失了GeoTrust Global CA根證書

Go
喵喔喔 2022-08-09 16:14:55
Heroku以某種方式丟失了其GeoTrust Global CA根證書,這是在Apple服務器上使用推送通知所必需的。我在這里找到了證書,但我不確定如何在我的Heroku應用程序中安裝它。我嘗試通過應用程序的設置將其添加為SSL證書,但它說我需要一個私鑰 - 我在哪里可以獲得根證書?還是我應該在其他地方添加這個?我應該指定我的應用程序是一個golang應用程序。
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

我重新定義了sideshow/apns2客戶端工廠功能,將GeoTrust CA包含在rootCA中,并且Apple的apns服務器可以訪問Heroku上的應用程序。


const (

    GeoTrustCACert = "<path to GeoTrust_Global_CA.pem>"

)


func newCertPool(certPath string) (*x509.CertPool, error) {

    rootCAs, _ := x509.SystemCertPool()

    if rootCAs == nil {

        rootCAs = x509.NewCertPool()

    }


    certs, err := ioutil.ReadFile(certPath)

    if err != nil {

        return nil, errors.New("no certs appended, using system certs only")

    }


    if ok := rootCAs.AppendCertsFromPEM(certs); !ok {

        log.Println("no certs appended, using systems only certs")

    }

    return rootCAs, nil

}


func NewApns2ClientWithGeoTrustCA(certificate tls.Certificate) *apns2.Client {

    rootCas, err := newCertPool(GeoTrustCACert)

    if err != nil {

        return nil

    }

    tlsConfig := &tls.Config{

        RootCAs:      rootCas,

        Certificates: []tls.Certificate{certificate},

    }


    if len(certificate.Certificate) > 0 {

        tlsConfig.BuildNameToCertificate()

    }

    transport := &http2.Transport{

        TLSClientConfig: tlsConfig,

        DialTLS:         apns2.DialTLS,

    }


    return &apns2.Client{

        HTTPClient: &http.Client{

            Transport: transport,

            Timeout:   apns2.HTTPClientTimeout,

        },

        Certificate: certificate,

        Host:        apns2.DefaultHost,

    }


}


查看完整回答
反對 回復 2022-08-09
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

本周我們遇到了類似的問題,并通過直接在 Heroku 儀表板中將證書添加到 App 變量來解決。根據文檔,您也可以再次手動添加 CA。https://devcenter.heroku.com/articles/ssl


查看完整回答
反對 回復 2022-08-09
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

我們在春季啟動應用程序中也遇到了類似的問題,該應用程序使用工件“pushy”,groupId“com.eatthepath”和“0.14.2”版本的依賴性來表示APN推送通知并部署在heroku中。為了解決這個問題,我們按照這個鏈接中的步驟操作:https://help.heroku.com/447CZS8V/why-is-my-java-app-unable-to-find-a-valid-certification-path 和 https://devcenter.heroku.com/articles/customizing-the-jdk,然后在構建ApnsClientBuilder時還使用了“CaCertUtil”類和“GeoTrust_Global_CA.pem”文件,并添加了“.setTrustedServerCertificateChain(CaCertUtil.allCerts());”行。

“CaCertUtil”和“GeoTrust_Global_CA.pem”取自此鏈接 https://github.com/wultra/powerauth-push-server/commit/71abeb5663201fedf64830fa0ebdf4db6c537e4b


查看完整回答
反對 回復 2022-08-09
  • 3 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號