petrel919 发表于 2018-11-16 11:41:31

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
  mvserver.pemaaaaaa.pem
  Nginx虚拟主机配置
  server {
  listen 443;   #修改端口号为443,如果有防火墙记得开启防火墙
  server_name aaaaaaa; #域名我隐藏了,不要在意aaaaaa
  root /data/www/www.test.com;
  indexindex.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_pass127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name;
  include       fastcgi.conf;
  }
  }
  测试访问,https:aaaaa 可以看到有绿色的锁,说明已经配置成功了,根据浏览器的查看证书的方式
  也不同,我使用的是火狐

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

页: [1]
查看完整版本: Nginx 配置https证书认证