golang/TLS 采坑

yayanyang · · 11698 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

今天在开发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只支持特定格式,要么是有什么配置参数?求高手解答???


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:yayanyang

查看原文:golang/TLS 采坑

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

11698 次点击  
加入收藏 微博
1 回复  |  直到 2000-01-01 00:00:00
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传