【nginx】让nginx linux服务器php与java环境共存 并且支持https

让nginx linux 服务器php与java环境共存  并且支持https


关于php与java的环境共存具体配置conf可以参考我的这篇:

【nginx】关于nginx中 php java环境的共存服务器配置


SSL是什么

SSL证书是 数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。
SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
SSL证书通过在客户端浏览器和 Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建立到所有主要的浏览器和 WEB服务器程序中,因此,仅需安装 服务器证书就可以 激活该功能了),即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。数位签名又名数字标识、签章 (即 Digital Certificate,Digital ID ),提供了一种在网上进行身份验证的方法,是用来标志和证明网路通信双方身份的数字信息文件,概念类似日常生活中的司机驾照或身份证相似。 数字签名主要用于发送安全电子邮件、访问安全站点、网上招标与投标、网上签约、网上订购、安全网上公文传送、网上办公、网上缴费、网上缴税以及网上购物等安全的网上电子交易活动。
服务器部署了 SSL 证书后可以确保用户在浏览器上输入的机密信息和从服务器上查询的机密信息从用户电脑到服务器之间的传输链路上是高强度加密传输的,是不可能被非法篡改和窃取的。同时向网站访问者证明了服务器的真实身份,此真实身份是通过第三方权威机构验证的。也就是说有两大作用:数据加密和身份认证。
a 确认网站真实性(网站 身份认证):用户需要登录正确的网站进行在线购物或其它交易活动,但由于互联网的广泛性和开放性,使得互联网上存在着许多假冒、钓鱼网站,用户如何来判断网站的真实性,如何信任自己正在访问的网站,可信网站将帮你确认网站的身份。当用户需要确认网站身份的时候,只需要点击浏览器地址栏里面的锁头标志即可。
b 保证信息传输的机密性:用户在登录网站在线购物或进行各种交易时,需要多次向服务器端传送信息,而这些信息很多是用户的隐私和机密信息,直接涉及经济利益或私密,如何来确保这些信息的安全呢?可信网站将帮您建立一条安全的信息传输加密通道。
其实现原理图如下图1所示:
在SSL会话产生时,服务器会传送它的证书,用户端浏览器会自动的分析 服务器证书,并根据不同版本的浏览器,从而产生40位或128位的会话 密钥,用于对交易的信息进行加密。所有的过程都会自动完成,对用户是透明的,因而,服务器证书可分为两种:最低40位和最低128位(这里指的是SSL会话时生成加密密钥的长度,密钥越长越不容易破解)证书。
最低40位的服务器证书在建立会话时,根据浏览器版本不同,可产生40位或128位的SSL会话密钥用来建立用户浏览器与服务器之间的安全通道。而最低128位的服务器证书不受浏览器版本的限制可以产生128位以上的会话 密钥,实现高级别的加密强度,无论是IE或 Netscape浏览器,即使使用强行攻击的办法破译密码,也需要10年。
SSL 证书有Verisign ,Geotrust ,Thawte ,等等,还有其他的一些品牌,但是在全球范围内,包括亚洲地区,应用最广泛的是verisign公司颁发的服务器证书,VeriSign为遍及145个国家和地区,超过100万SSL证书提供安全保护; 
95%的财富500强企业,世界最大的40家银行选择VeriSign。

     证书的格式 (参考了博文 http://www.cnblogs.com/lhj588/p/6069873.html )

一般来说,主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java。

Tomcat、Weblogic、JBoss等,使用Java提供的密码库。通过Java的Keytool工具,生成Java Keystore(JKS)格式的证书文件。

Apache、Nginx等,使用OpenSSL提供的密码库,生成PEM、KEY、CRT等格式的证书文件。

此外,IBM的产品,如Websphere、IBM Http Server(IHS)等,使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件。微软Windows Server中的Internet Information Services(IIS),使用Windows自带的证书库生成PFX格式的证书文件。

如果您在工作中遇到带有后缀扩展名的证书文件,可以简单用如下方法区分:

*.DER *.CER : 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。

*.CRT : 这样的文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与*.DER/*.CER相同。

*.PEM : 一般是文本格式,可以放证书或私钥,或者两者都包含。 *.PEM如果只包含私钥,那一般用 *.KEY代替。

*.PFX *.P12 是二进制格式,同时含证书和私钥,一般有密码保护。

怎么判断是文本格式还是二进制?

用记事本打开,如果是规则的数字字母,如
—–BEGIN CERTIFICATE—–
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
—–END CERTIFICATE—–
就是文本的,上面的BEGIN CERTIFICATE,说明这是一个证书
如果是—–BEGIN RSA PRIVATE KEY—–,说明这是一个私钥


那么配置服务器开始:

  将买来的 后缀为 .key   .pem 的文件放在nginx的安装目录cert中,没有则创建文件夹,放完后配置nginx.conf

【nginx】让nginx linux服务器php与java环境共存 并且支持https_第1张图片

  nginx 的conf 文件配置


  1. # HTTPS server
    server {
        listen 443;
        server_name *.baidu.com;
        ssl on;
        root /data/wwwroot/default;
        index index.html index.htm;
        ssl_certificate   cert/21397896181110921.pem;
        ssl_certificate_key  cert/213978961811110921.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            root  /data/wwwroot/default;
            index index.html index.htm;
        }
        #假如你的原本的服务器是入口是php 你可以添加下面的java项目,即可实现php  java 共存 https
        location /javaProject/ {  
             proxy_pass http://服务器ip:8080;  
             proxy_redirect off;  
             proxy_set_header Host $host;  
             proxy_set_header X-Real-IP $remote_addr;  
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
             client_max_body_size 10m;  
             client_body_buffer_size 128k;  
             proxy_connect_timeout 90;  
             proxy_send_timeout 90;  
             proxy_read_timeout 90;  
             proxy_buffer_size 4k;  
             proxy_buffers 4 32k;  
             proxy_busy_buffers_size 64k;  
             proxy_temp_file_write_size 64k;  
        }  
  2. #假如你的原本的服务器是入口是php 你可以添加下面的java项目,即可实现php  java 共存 https 主要针对后缀
    location ~ (\.jsp)|(\.do)$ {  
             proxy_pass http://服务器ip:8080;  
             proxy_redirect off;  
             proxy_set_header Host $host;  
             proxy_set_header X-Real-IP $remote_addr;  
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
             client_max_body_size 10m;  
             client_body_buffer_size 128k;  
             proxy_connect_timeout 90;  
             proxy_send_timeout 90;  
             proxy_read_timeout 90;  
             proxy_buffer_size 4k;  
             proxy_buffers 4 32k;  
             proxy_busy_buffers_size 64k;  
             proxy_temp_file_write_size 64k;  
        }  
    }




 参考证书格式博文:(感谢)

     http://www.cnblogs.com/lhj588/p/6069873.html 

  

你可能感兴趣的:(linux)