Nginx+SSL+Tomcat怎么配置SSL证书

下面解决方案是浏览器和 Nginx 之间使用 HTTPS 通讯,而 Nginx 到 Tomcat 通过 proxy_pass 使用标准 HTTP 连接。 

详细配置文件如下(Nginx 端口 80/443,Tomcat 端口 8080): 

Nginx 前端SSL配置文件:   

upstream tomcat { 

server 127.0.0.1:8080 fail_timeout=0; 

# HTTPS server 

server { 

listen 443 ssl; 

server_name localhost; 

ssl_certificate /Users/SSL/chinassl.crt; 

ssl_certificate_key /Users/SSL/chinassl.key; 

ssl_session_cache shared:SSL:1m; 

ssl_session_timeout 5m; 

ssl_ciphers HIGH:!aNULL:!MD5; 

ssl_prefer_server_ciphers on; 

location / { 

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host; 

proxy_set_header X-Forwarded-Proto https; 

proxy_redirect off; 

proxy_connect_timeout 240; 

proxy_send_timeout 240; 

proxy_read_timeout 240; 

# note, there is not SSL here! plain HTTP is used 

proxy_pass http://tomcat; 

其中最为关键的就是 ssl_certificate 和 ssl_certificate_key 这两项配置,其他的按正常配置。不过多了一个 proxy_set_header X-Forwarded-Proto https; 配置。 

后端 Tomcat,配置文件如下 server.xml:

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">

  <Service name="Catalina"&gt;

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="443"

               proxyPort="443">

    <Engine name="Catalina" defaultHost="localhost>

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true"&gt;

            <Valve className="org.apache.catalina.valves.RemoteIpValve"

remoteIpHeader="x-forwarded-for"

remoteIpProxiesHeader="x-forwarded-by"

protocolHeader="x-forwarded-proto"  />

            <Context path="" docBase="/chinassl/webapp" reloadable="false">

      </Host>

    </Engine>

  </Service>

</Server>

   上述的配置中没有什么特别的,但是特别特别注意的是必须有 proxyPort="443",这是整篇文章的关键,当然 redirectPort 也必须是 443。同时 节点的配置也非常重要,否则你在 Tomcat 中的应用在读取 getScheme() 方法以及在 web.xml 中配置的一些安全策略会不起作用。

原创文章,作者:SLBOI,如若转载,请注明出处:http://www.wangzhanshi.com/n/16261.html

(0)
SLBOI的头像SLBOI
上一篇 2025年1月2日 12:39:04
下一篇 2025年1月2日 12:39:06

相关推荐

  • 如何申请阿里云免费ssl证书的方法

    现在很多人为了凸显自己的个性,也开始开设个人的网站了,考虑到网站的安全问题,往往就是给网站部署ssl证书,但是不同于企业级的网站,个人网站并没有那么多的费用来申请一份好的ssl证书…

    2025年1月2日
  • 单域名证书是什么?

    SSL证书是一种数字证书,它是由受信任的数字颁发机构所颁发的,SSL证书是加密传输协议,它的安全性是很高的,如果没有安装SSL证书,那么之前网站的通信协议是http,那么网站的数据…

    2025年1月20日
  • 解决证书风险打不开网页的方法

    我们如果在使用计算机访问一些付宝等网页的时候出现证书风险打不开网页。首先弹出了安全警报窗,我们应该看一下系统的时间,是不是在操作过程中安装跟证书已经失效了,公证书失效是用来验证其他…

    2025年1月2日
  • php7+中怎么使用openssl替代mcrypt进行AES加密解密

    mcrypt十年过去,现在php7+中已经开始淘汰。官方给出掉提示: mcrypt_get_block_size — 获得加密算法的分组大小 Warning T…

    ssl证书 2025年1月2日
  • 如何申请ssl证书

    多域名SSL证书可以在网站那些事网站申请,网站那些事SSL证书服务品质卓越,为网站开启加密新时代,安全可靠。申请步骤为: 1.进入网站那些事网站,注册账号登录(已有账号直接登录) …

    ssl证书 2025年1月2日
  • iOS下使用OpenSSL

    Xcode5.0 下使用OpenSSL最近architectures 要支持x86_64架构,要重新编译OpenSSL参考 最近要支持64bit架构,要重新编译OpenSSL参考了…

    2025年1月2日
  • 如何挑选可信的ssl证书

    如何挑选可信的ssl证书?很多人都不太了解,今天小编为了让大家更加了解挑选ssl证书的方法,所以给大家总结了以下内容,一起往下看吧。 随着电子商务贸易的发展,越来越多的人选择网络购…

    2025年1月2日
  • SSL证书厂商都有哪些?

    SSL证书是一种配置在网上服务器当中的安全证书,可以保护网站当中的信息安全。因为该证书配置在网站服务器当中,因此有被称之为服务器证书。虽然这种证书对网站的信息安全起到好的作用,但是…

    2025年1月2日
  • Linux中如何使用OpenSSL命令

    OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密…

    2025年1月2日
  • Nginx如何配置SSL证书部署HTTPS网站

    自行颁发不受浏览器信任的SSL证书 手动颁发 xshell登录服务器,使用openssl生成RSA密钥及证书 # 生成一个RSA密钥  $ opens…

    2025年1月2日

发表回复

登录后才能评论