Nginx 配置https证书认证

Posted bazingafraser

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 配置https证书认证相关的知识,希望对你有一定的参考价值。

nginx 配置https证书认证

一、什么是SSL证书

SL证书全程:SSL安全通道(Secure socket layer(SSL)。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。

SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA(如VeriSign),在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。


 

TLS版本号以及相关说明

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。

二、配置服务器

1、获取证书

通过证书颁发机构获取,也就是找卖证书的就可以了

2、安装服务器证书

将证书文件,上传至Nginx安装目录的conf目录下,我的安装目录是

/usr/local/nginx/conf/

为了方便管理证书我在conf目录下创建了证书的统一管理目录https_ssl目录,我将所有证书

存放在了conf/https_ssl/下。

同时为了证书的可识别性,可以为证书改名

mv server.key aaaaaa.key

mv server.pem aaaaaa.pem

Nginx虚拟主机配置

 

 

server {

listen 443; #修改端口号为443,如果有防火墙记得开启防火墙

server_name aaaaaaa; #域名我隐藏了,不要在意aaaaaa

root /data/www/www.test.com;

index index.php index.html index.htm;

access_log /data/wwwlogs/rewrite.log access;

ssl on; #SSL功能开启,采用SSL通信协议

ssl_certificate https_ssl/server.pem; #证书文件

ssl_certificate_key https_ssl/server.key; #私钥文件

ssl_session_timeout 5m; 客户端可以重用会话缓存中ssl参数的过期时间,内网系统默认5分钟太短了,可以设成30m即30分钟甚至4h

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #支持的SSL协议标准

ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; 选择加密套件

ssl_prefer_server_ciphers on; #设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件


 

location ~ \\.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi.conf;

}

}


 

测试访问,https:aaaaa 可以看到有绿色的锁,说明已经配置成功了,根据浏览器的查看证书的方式

也不同,我使用的是火狐

技术分享图片

 

 

在实际使用中https比http的访问方式,开销要大

以上是关于Nginx 配置https证书认证的主要内容,如果未能解决你的问题,请参考以下文章

NGINX 配置 SSL 双向认证

TOMCAT配置HTTPS双向认证,为啥始终无法访问

nginx想做一个https双向认证.为啥浏览器不出现证书选择

NGINX 配置 SSL 双向认证

Nginx配置客户端SSL双向认证

(备忘)Nginx配置客户端SSL双向认证