Nginx+tomcat配置https

本文详细介绍了HTTPS的基本原理及其在Nginx和Tomcat上的配置方法。包括购买和安装SSL证书、Nginx和Tomcat的HTTPS配置步骤、端口设置、防火墙配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问:为什么要用https?


为了数据传输安全。


问:为什么用https传输就安全了?


这里:

http://blog.youkuaiyun.com/jasonjwl/article/details/50985271


问:Nginx和tomcat都要配置吗?


这里有两种情况:如果你在项目中是相对引用静态资源(js、css等)就需要配置nginx的ssh和tomcat的ssh。

例如:

 <script type="text/javascript" src="/static/customer/js/common/webHelper.js"></script>

如果你是全路径引用如:

<link href="${contextPath}/styles/notebook/notebook_files/font.css" rel="stylesheet" type="text/css">
这样只用配置nginx为https及可。nginx和tomcat通信采用http就行。

问:nginx怎么配置https。


1.先去买个证书。

https://www.getssl.cn


引用:

解压后应包含两个文件:

yourdomain.com.crt     (服务器证书)
yourdomain.com.key   (私钥文件)如果为空请将生成CSR时保存的私钥内容粘贴在文件中

环境检测,检测命令如下(测试nginx是否支持SSL)

nginx -V

如果有显示 –with-http_ssl_module 表示已编译openssl,支持安装ssl

如果没有安装请下载nginx源码重新编译

./configure --with-http_stub_status_module --with-http_ssl_module
make && make install

配置Nginx

server {
listen 80;
listen 443 ssl;
server_name www.getssl.cn;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_certificate /etc/ssl/yourdomain.com.crt;
ssl_certificate_key /etc/ssl/yourdomain.com.key;
ssl_prefer_server_ciphers on;
#自动跳转到HTTPS (可选)
if ($server_port = 80) {
rewrite ^(.*)$ https://$host$1 permanent;
}
location / {
root /home/getssl/;
index index.php;
}
}

以上配置仅供参考,其他参数请根据生产环境需要添加。

安装后重启nginx使其生效

centos6
service nginx restart
centos7
systemctl restart nginx

问题排查:

如果使用CDN(加速器),需要在CDN上面安装证书,国内免费加速的都不支持https(已知阿里云cdn支持)

检查443端口是否启动   使用下面命令 netstat -apnt | grep 443    (如果没有启动检查配置文件或者端口是否冲突)

443端口如果已经启动,但不能访问,请检查防火墙(或者安全狗) ,允许443端口.

linux iptables使用下面命令:

iptables -A INPUT -p tcp -m tcp --dport https -j ACCEPT


问:tomcat 如何配置https:


一步: 进入Tomcat安装目录,  d:/apache-tomcat-8.0.18, 把下载的jks文件放在tomcat安装目录即可。

d:/apache-tomcat-8.0.18/getssl.cn.jks

第二步: 打开tomcat配置文件 conf/server.xml

tomcat默认一般是8080端口或者 80端口,先找到这一段。

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

在这段下面插入下面配置:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1" 
clientAuth="false" sslProtocol="TLS" keystoreFile="getssl.cn.jks" keystorePass="123456" />
  • keystoreFile=”getssl.cn.jks”            【 jks 文件名需要修改】
  • keystorePass=”123456″                 【jks密码】

注意事项:

  • 防火墙要允许443端口
  • 使用CDN,需要让CDN服务商安装SSL
  • Tomcat 6.0上面配置如果无法启动,把protocol修改为 protocol=”HTTP/1.1″
  • windows平台运行tomcat , bin目录下必须有tcnative-1.dll
org.apache.coyote.http11.Http11Protocol - blocking Java connector
org.apache.coyote.http11.Http11NioProtocol - non blocking Java connector
org.apache.coyote.http11.Http11AprProtocol - the APR/native connector.
tomcat 修改DHE大小
-Djdk.tls.ephemeralDHKeySize=2048


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值