让Nginx支持HTTPS的简单配置

分类: 服务器  • 发布时间: 2015-09-01 15:50:35  • 浏览量:5266

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来讲就是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系,用于安全的http数据传输。https使用的默认端口是443。下面是一个简单步骤,使用的是自己给自己颁发的证书:


首先要安装openssl

yum -y  install openssl openssl-devel

生成2048位RSA密钥(也可以是1024位)

openssl genrsa -out privkey.pem 2048

自己给自己颁发一个证书

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 365

在这一步会要求填写一些信息:

Country Name: cn 两个字母的国家代号 

State or Province Name: An Hui 省份名称 

Locality Name: Bengbu 城市名称 

Organization Name: Family Network 公司名称 

Organizational Unit Name: Home 部门名称 

Common Name:distinguish  name 

Email Address: sunstorm@263.net Email地址 


然后在nginx配置文件的sever部分增加如下内容

listen       80;
listen       443 ssl;
ssl_certificate /usr/local/nginx/cacert.pem;
ssl_certificate_key /usr/local/nginx/privkey.pem;

上面的ssl_certificate和ssl_certificate_key后面的路径改成你刚才生成的路径


保存配置文件,然后重启nginx

这时候用http://yourdomain和https://yourdomain均可访问你的网站了,不过由于这个证书是自己颁发的,所以一般浏览器是不信任的,所以浏览器会有所警示!


如果需要用在实际的生产环境中,那么证书就应该找可信赖的机构颁发,一般这些证书都是按年收费的,不过也有免费提供,比如国内的WoSign以及国外的startssl 均有免费的证书可以申请!


官方文档:http://nginx.org/en/docs/http/configuring_https_servers.html

文章标签: nginx, ssl, https