Nginx 配置https证书认证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的访问方式,开销要大


本文出自 “10946218” 博客,谢绝转载!

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

NGINX 配置 SSL 双向认证

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

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

NGINX 配置 SSL 双向认证

Nginx配置客户端SSL双向认证

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