天天看點

Godaddy SSL的一次踩坑記錄

關于配置SSL 報錯誤: failed SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: ANY PRIVATE KEY error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib

起因是最近需要更換一台伺服器上的SSL證書,朋友是直接把crt包(含pem和2個crt,godaddy下載下傳的apache版本包)、一個key.txt和一個csr.txt發給我,以前都是本機生成的key和csr之類的再去godaddy申請crt,這次不大一樣,但是檔案應該沒問題,我nginx的配置使用的是key+crt形式,配置為:

ssl_certificate      /home/xxx/(合并過後的)all.crt; 
ssl_certificate_key  /home/xxx/(産生crt的關聯key)1.key;
           

使用

cd /home/xxx #下載下傳的所有東西都在這了
cat (編碼).crt gd_bundle-g2-g1.crt>all.crt
           

生成合并後的crt,(這裡我試過直接使用(編碼).crt也是可行的,但是對seo之類的有影響,據說是根證書和域名證書之類的關系,這裡我知識匮乏了,先不管)

然後把key.txt改成1.key,至此完成工作,重新開機nginx,馬上報錯140B0009

對此百度上的東西都是檢查crt合并時候的格式,但是我合并過這麼多次,都是使用cat的形式,又不是拖出來複制粘貼,格式大部分情況下都不會有問題,終于在

這裡

找到了一種思路,這裡有位大兄弟是修改了key的編碼格式,使用

file xxx.key #檢視編碼格式
iconv -l #檢視系統支援的格式
vi xxx.key
:set fileencoding=ASCII #儲存退出,确認一遍格式
           

最後重新開機nginx,完成

并不是說網上的改格式不行,還是有很多人改了key裡面的格式或者crt格式成功了,此文隻是提供一種解決思路,在無法的時候可以試試