Nginx 配置https

SSL证书是用干什么的?

SSL证书是帮助网站实现https加密访问的一种数字证书。

对于大多数人,可能还不知道我们平常的http和https之间的区别,通俗的说,当你的网站是http方式链接时,你的用户向网站提交任何信息,包括用户名登录信息、订单明细、交易内容等等所有敏感的信息都是明文传输方式,这就给黑客提供了监听、窃取、甚至篡改你的用户和网站之间通讯内容的漏洞。而https则把这种明文传输方式变成了加密方式。

示例配置环境:

centos 7.2 amd64
nginx 1.10.1

备注,本示例基于实例connove.com,只是我们略去一些后端配置程序,但足以让您正确配置https并能正确访问。示例中我们做了域名自动跳转到https的额外配置。

确定项目位置

示例的项目位置:

/www/connove

获取https证书

connove.key
connove.pem

怎样获取https证书

您可以到阿里云或腾讯云上申请,也可以通过第三方提供的窗口进行申请。

配置nginx

在nginx主目录新建目录sslkey,并新建connove子目录,将connove.key 和connove.pem放入connove目录

绝对路径如下:

/etc/nginx/sslkey/connove

在nginx的conf.d中新建connove.conf,其内容如下

server {
    listen 80;
    listen [::]:80;
    server_name connove.com www.connove.com;
    return 301 https://www.connove.com$request_uri;
}
server {
    listen 443;
    server_name connove.com;
    ssl on;
    return 301 https://www.connove.com$request_uri;
    root /www/connove;
    ssl_certificate   sslkey/connove/connove.pem;
    ssl_certificate_key  sslkey/connove/connove.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
    ssl_prefer_server_ciphers on;

    charset     utf-8;
    error_page 497  https://$host$uri?$args;
}
server {
    listen 443;
    server_name www.connove.com;
    ssl on;
    root /www/connove;
    # index index.html index.htm;
    ssl_certificate   sslkey/connove/connove.pem;
    ssl_certificate_key  sslkey/connove/connove.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
    ssl_prefer_server_ciphers on;

    charset     utf-8;
    error_page 497  https://$host$uri?$args;
}

重启nginx

systemctl restart nginx.service

访问您的域名

您将会看到域名自动跳转到https

补充命令

nginx

配置nginx服务自动启动

systemctl enable nginx.service

启动nginx

systemctl start nginx.service

停止nginx

systemctl stop nginx.service

强制停止nginx

pgrep nginx | xargs kill -s 9

centos

查看版本

lsb_release -a

关于

https将是未来主流,google和baidu已经在这方面做了说明.

Happy everyday!

from cppfun 刘凯·数据科学家