在Nginx中使用Godaddy的SSL证书

首先在Godaddy付款购买SSL证书,成功以后打开管理面板,找到刚购买的SSL证书,点击新建证书,这个时候Godaddy会让提供CSR文件内容,能够经过下面的命令行生成csr内容:php

    openssl genrsa -des3 -out <name of your certificate>.key 2048
    openssl req -new -key <name of your certificate>.key -out <name of your certificate>.csr

将上面替换成真实的文件名,第一个命令行生成的是证书,在第二步的时候提示输入一些信息,其中Common Name (e.g. server FQDN or YOUR name) 是须要使用的证书的域名。对于普通的DV(域名验证) SSL证书 只须要保证CN(Common Name)字段填上你的域名便可,而对于高级的OV(组织验证),EV(扩展验证)证书都须要向CA提交相关资料。nginx

将生成的csr文件内容复制粘贴到Godaddy的文本框中,提交以后会向域名全部人的邮箱发送一个域名验证的连接,验证成功以后就能够下载证书。Godaddy会提供两个crt文件,一个是随机字符串命名(如7d3ed5e3ef729196.crt),另外一个以gd_bundle开头(如gd_bundle-g2-g1.crt),须要执行下面的命令将这两个文件合并成一个文件:session

cat 7d3ed5e3ef729196.crt gd_bundle-g2-g1.crt > <name of your certificate>.csr

若是想在Nginx中使用须要Nginx支持SSL,能够参考 让Nginx多个虚拟主机支持SSL 这篇文章。dom

将上面的key文件和合并后的csr文件放到nginx的conf/ssl目录下,而后修改为以下设置:spa

server {
        listen 443;
        server_name www.examples.com;
        index index.php;
 
        ssl on;
        ssl_certificate ssl/domain.crt;
        ssl_certificate_key ssl/domain.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:!RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on; 

不过这样设置以后,若是启动Nginx的时候会要求输入key证书的密码,能够生成一个解密的key文件:命令行

openssl rsa -in domain.key -out domain.key.unsecure

输入证书的密码就能够了,而后将上述的domain.key替换成domain.key.unsecure。

code

相关文章
相关标签/搜索