让nginx linux 服务器php与java环境共存 并且支持https
关于php与java的环境共存具体配置conf可以参考我的这篇:
【nginx】关于nginx中 php java环境的共存服务器配置
SSL是什么
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—–,说明这是一个私钥
那么配置服务器开始:
nginx 的conf 文件配置
- # 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;
} - #假如你的原本的服务器是入口是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;
}
}