您的位置:首页 > 理论基础 > 计算机网络

阿里云服务器使用免费个人DV证书部署nginx+https站点

2017-11-17 11:39 671 查看


一、在阿里云中购买证书服务

在阿里云中购买证书服务,功能可以在阿里云的控制台中的“证书服务”中找到,由于是个人站点,我购买的是DV类型的证书。



OK,这里补充一下证书的几个类型,根据不通的业务类型使用不通的证书:

证书类型使用范围
DV个人使用证书,能起到加密传输的作用,但无法向用户证明网站的真实身份。
OV企业使用证书,提供加密功能,对申请者做严格的身份审核验证,提供可信身份证明。
EV增强型证书,为目前企业最广泛使用的证书。金融证券、银行、第三方支付、网上商城等,重点强调网站安全、企业可信形象的网站,涉及交易支付、客户隐私信息和账号密码的传输。
当证书已经签发完成后,下载到本地,准备上传到服务器了。可以发现证书一共是2个文件,一个是pem,一个是key


二、web服务器结构

我的web服务器结构很简单,使用了典型的nginx+php+mysql。在开启https之前,需要将阿里云安全规则的443端口对外开放,否则无法使用https服务。



这里关键点在于Nginx的配置,首先,确保你在编译、安装nginx的时候加上了ssl模块,如果没有,就必须重新编译或者安装了。

//查看nginx是否支持ssl
bash-4.1# /usr/local/nginx_1.10.1/sbin/nginx -V
nginx version: nginx/1.10.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
configure arguments: --prefix=/usr/local/nginx_1.10.1 --user=www --group=www --with-pcre --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module

//很遗憾,需要重新编译nginx,在编译的时候带上--with-http_ssl_module,--with-stream_ssl_module参数,否则ssl模块无法使用

重新编译后nginx后,我在nginx的目录下新建一个cert目录,将证书的key和pem文件复制到该目录下,并配置站点文件。
在server中添加ssl支持:
1)listen设置443端口,这个是https的默认端口
2)ssl_certificate和ssl_certificate_key设置为证书的路径
3)ssl_ciphers指令为ssl加密方式(可参考:http://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_ciphers

server {

    listen 443;

    server_name localhost;

    ssl on;

    root html;

    index index.html index.htm;

    ssl_certificate  cert/xxx.pem;

    ssl_certificate_key  cert/xxx.key;

    ssl_session_timeout 5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_prefer_server_ciphers on;

    location / {

        root html;

        index index.html index.htm;

    }

}

配置完后,重启nginx,并测试https的访问。到目前为止,https已经部署完成,但是会发现https和http均可以访问。因此,我们需要在http做301跳转到https。

server {
    listen       80;
    server_name  localhost;
    rewrite ^/(.*)$ https://localhost.com permanent;
}

最后在线测试一下安全性,等级为F级,对于个人证书来说,已经是不错了。至于性能和更高的安全性优化,那是后话了。

附录:
一个在线的https安全性检测站点:
https://www.ssllabs.com/ssltest/index.html?spm=5176.100241.0.0.bB7dX3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx ssl server web gzip