golang/TLS 采坑


今天在開發gsweb的https部分時遇到了個神奇的BUG,記錄在這里供遇到類似問題的同學參考。
事情的起因是這樣的:

我在OSX 10.10下用鑰匙串生成了一個自簽名的網站證書,導出供ListenAndServeTLS使用。然后golang就很不給面子的給我一直報錯:crypto/tls: failed to parse key PEM data

解決辦法

  • google了一下發現beego的一個issue也提到了這個問題。里面提到了這個鏈接
  • 讀了最后一個鏈接,發現好像這個問題是X509KeyPair格式不對;
  • 按照這個說法,把公鑰格式改成了“-----BEGIN CERTIFICATE-----“開始的格式;
  • 運行程序還是不行;
  • 沒辦法,只有讀下golang的源代碼了。發現源代碼里面有個程序$GOAPTH/libexec/src/crypto/tls/generate_cert.go;
  • 使用這個程序生成了新的證書,問題解決了!!!!!

結論

應該還是X509KeyPair格式問題,要么是golang只支持特定格式,要么是有什么配置參數?求高手解答???


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM