申请SSL证书及Nginx支持HTTPS

申请SSL证书及Nginx支持HTTPS

申请SSL证书

每年2.5$ 的SSL证书申请地址在这里: https://billing.centriohost.com/cart.php?a=add&pid=21
打开后看到原价是10$/年,域名使用泛域名: *.imxylz.com,服务器IP地址需要提供公网IP地址。邮件的前缀可以选择一个,后缀是域名地址。
当然需要一个2048位的CSR。

生成一个CSR私钥,可以使用下面的名称:
    #openssl genrsa -out imxylz.com.pem 2048
    #openssl req - new -key imxylz.com.pem -out imxylz.com.csr

需要注意的是生成csr最好不输入密码,否则某些web服务器(例如apache)启动时需要输入密码。
另外CN (Common Name is a Necessary Item) 应该是 *.imxylz.com,否则会被拒绝。
(我在这个地方折腾好久,最后发ticket更换csr才解决)。
然后在下一页付款是输入优惠码 LET2SSL ,即可优惠7.5$,这样就只剩下2.5$/年了。
以后每年续费也按照这个价格进行。
付款完成后系统会发送邮件给第一步选择的邮箱地址: 前缀@imxylz.com,例如我的是: [email protected]
特别注意的是:由于邮件会发送给[email protected],因此需要提前准备好邮件服务器,例如我当时就安装了postfix又来接收邮件。
由于pop3没有安装成功,因此我将收到的邮件 /root/Maildir/new/xxxxxx 下载回来,改成.eml后缀文件用OS X的Mail打开的。
邮件中有一个链接地址,需要确认信息是否正确,确认即可。(如果不确认及意味着操作失败,不能进行以后的操作了)。
比较悲剧的是我当时将邮件服务器搞坏了,没有收到邮件,最后只好发送ticket请求重发。
好在工作人员非常厚道,将证书发送给[email protected]以及我的gmail邮箱。
正常应该不发送给非域名邮箱的。
再次表扬下 centriohost网站的工作人员,对ticket的处理比较及时。不爽的地方在于注册的时候会将密码明文发送到注册邮箱中。

Nginx 安装证书

邮件中有两个证书,一个是域名证书,一个是根证书。
将两个证书合并成一个文本文件(包括注释) imxylz.com.crt。
(注意域名证书在上,根证书在下,否则nginx启动会报错误。)
现在我们需要两个文件: imxylz.com.pem以及imxylz.com.crt。

1. 编译Nginx

如果nginx没有支持SSL,则需要重新编译。可通过 nginx -V 来检查是否支持SSL。
    #./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    #make
    #make install

2. 配置证书

将证书拷贝到/usr/local/nginx/conf中,然后配置(/usr/local/nginx/conf/nginx.conf)如下:
    server {
        listen 443;
        server_name imxylz.com;
        index index.html;
        ssl on;
        ssl_certificate /usr/local/nginx/conf/imxylz.com.crt;
        ssl_certificate_key /usr/local/nginx/conf/imxylz.com.pem;
        location / {
            root /data/imxylz.com/ public;
        }
    }

测试下nginx并运行。
    #/usr/local/nginx/sbin/nginx -t
    #/usr/local/nginx/sbin/nginx
现在就可以通过 https://imxylz.com 访问HTTPS服务了。
当然如果网站有非https的资源,就需要改造地址,否则Windows下浏览器会弹出警告。
例如:

    dsq.src = '//' + disqus_shortname + '.disqus.com/' + disqus_script;
    <link href="//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
最终的效果图如下:

如果有问题,可以检查nginx的error_log。

[原文地址: https://imxylz.com/blog/2013/09/11/https-of-nginx/]


©2009-2014 IMXYLZ
imxylz.com
| 求贤若渴

你可能感兴趣的:(申请SSL证书及Nginx支持HTTPS)