NGINX,TOMCAT,HTPPS,SSL证书安装部署
时间:2016-12-08 19:00来源:linux.it.net.cn 作者:IT
NGINX反向代理端配置
-
将证书签发邮件中的包含服务器证书代码的文本复制出来(包括-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----)粘贴到记事本等文本编辑器中。
-
为保障服务器证书在客户端的兼容性,服务器证书需要安装两张中级CA证书(不同品牌证书,可能只有一张中级证书)。
-
拼接证书
在服务器证书代码文本结尾,回车换行,并分别粘贴两张中级CA证书代码(包括-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----,每串证书代码之间均需要使用回车换行分隔),修改文件扩展名,保存包含三段证书代码的文本文件为server.pem文件(如果只有一张中级证书,则只需要粘贴一张中级证书代码与服务器证书代码即可,并回车换行)。
-
安装NGINX。如果是自己编译的话,记得加上--WITH-HTTP_SSL_MODULE参数。
-
将PEM和SERVER.KEY文件复制到NGINX的CONF目录下;默认目录/ETC/NGINX/
-
修改NGINX 配置文件/ETC/NGINX/NGINX.CONF反向代理到TOMCAT
下面配置仅包含https的配置
server {
listen 443 ssl;
server_name oopay.kouclo.com;
keepalive_timeout 70;
ssl_certificate server.pem;
ssl_certificate_key server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
ssl_session_timeout 5m;
ssl_session_cache builtin:1000 shared:SSL:10m;
root /home/kouclo/apache-tomcat-8.0.18/webapps/oopay-web;
access_log logs/oopay.access.log;
index index.html index.htm index.jsp;
location / {
proxy_pass https://114.113.232.18:9443;
}
}
-
保存退出,并重启NGINX。先测试配置:NGINX –T ,如果OK的话执行命令:NGINX –S RELOAD
TOMCAT服务器配置
-
将上一步的SERVER.PEM和SERVER.KEY文件同样复制到TOMCAT的CONF目录下。
-
安装APR,APR需要三个组件
-
apr-1.3.9.tar.gz http://apr.apache.org/download.cgi
-
apr-util-1.3.9.tar.gz
-
tomcat-native.tar.gz 在Tomcat的bin目录下
以上组件均可使用 ./configure && make && make install
来编译安装。native编译时需要带上 --with-apr=/usr/local/apr --with-ssl
-
设置 TOMCAT 整合 APR
以下是两种方法
-
修改 tomcat 的启动 shell ( catalina.sh ),在该文件中加入启动参数CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
-
也可以在环境变量中配置/etc/profile中加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
source /etc/profile
-
修改CONF目录下的SERVER.XML配置文件
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Connector
protocol="org.apache.coyote.http11.Http11AprProtocol"
port="9443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="${catalina.base}/conf/server.pem"
SSLCertificateKeyFile="${catalina.base}/conf/server.key"
SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>
-
在应用的WEB-INF/WEB.XML中指定必须走HTTPS的URL
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
-
排除SSL跳转的配置:
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/open/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
防火墙设置
-
开放443端口:编辑/ETC/SYSCONFIG/IPTABLES文件确认添加了记录:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
测试证书的安装情况
-
###### 点击 这里 输入你的网址,点击Check。查看配置的安全性。
(责任编辑:IT) |
------分隔线----------------------------