一、购买Godaddy SSL证书
1、打开Godaddy官网 http://www.godaddy.com/;
2、点击网站导航里的 Hosting & SSL >> SSL Certificates ;
3、直接点击"Get Started"在出来选择页面选择你的需求,我只用于一个主域名所以我选的"Protect 1 Website";
4、接着点击"Add to Cart"加入购物车,选择你的支付方式,支付。(godaddy的优惠券还是挺给力的,记得上网搜搜)
5、回到你的控制台点击"SSL CERTIFICATES"就可以看到你刚买的SSL了,点击其后面的"Set Up"激活这个SSL;
6、激活成功后,我们在"SSL CERTIFICATES"一栏看到证书已激活,点击后面的"Launch"按钮进入下一步;
7、这时需要你输入 CSR ,页面不要关,我们去生成一个CSR过来再继续;
二、生成服务器的 CSR 文件
用 root 权限进入服务器,输入:
Bash
openssl genrsa -des3 -out .key 2048
openssl req -new -key .key -out .csr
(必须是 2048 ,Godaddy 规定如此)
按照要求填写正确的信息(Godaddy 帮助页面有相关帮助:http://help.godaddy.com/topic/746/article/5269)
三、下载证书
1、打开上面生成好的CSR,复制里面的信息粘贴到godaddy的输入框里,按提示下一步,注意核对一下你的域名;
2、提交好了后需要等待godaddy的审核,审核通过你会收到一封邮件。
3、打开邮件里面给你的下载地址,下载你的证书;(一个压缩包 里面来个.crt文件)
四、Nginx配置证书
1、拷贝并合并证书
①把下载下来的压缩包里的两个文件合并到一个文件内,例 server.crt
使用 cat ca_bundle.crt certificate.crt >合成的名字.crt
②把合并好的crt文件和一开始的key文件都拷贝到统一一个目录里,例/home/ssl/
2、修改 Nginx 主机配置
Bash
server{
listen 443;
server_name xxx.com www.xxx.com;
ssl on;
ssl_certificate /home/ssl/server.crt;
ssl_certificate_key /home/ssl/server.key;
#下面与和你正常配置一样
}
到服务器中的时候,则需要将ca_bundle.crt 和 certificate.crt进行合并处理。这里如果我们合并不正确会出现这样的错误提示:
nginx: [emerg] PEM_read_bio_X509_AUX("/root/domain.crt") failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line)
可能是两个文件合并结束和开头的分隔符重叠导致的,所以我们直接在箭头位置,来一个回车分割空行就可以.
修改后如果继续报:
nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl-certs/img.example.com.key") 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)
可能是.key的文件编码问题,用下面这句话将UTF-8转换为ASCII
iconv -c -f UTF8 -t ASCII yourname.key >> yourname.key
以上是我自己遇到问题并逐步解决,借鉴了几位大佬的文章