前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx+tomcat配置ssl实现https

nginx+tomcat配置ssl实现https

作者头像
WindCoder
发布2018-09-20 15:57:15
4.3K0
发布2018-09-20 15:57:15
举报
文章被收录于专栏:WindCoderWindCoder

前言

本文主体为单向认证的配置方式,生成证书的方式放于最后附录里面。

实例中tomcat版本为tomcat9。

纯tomcat篇

仅为tomcat时,进入tomcat目录/conf/server.xml中,添加如下代码(具体参数请根据实际情况修改),并重启tomcat即可。若使用自定义的证书查看时使用ie为佳,chrome会直接屏蔽域名访问的链接(提示"此网站无法提供安全连接",以致纠结好长时间以为自己配置失败了呢= =),ip访问一般都会提示非安全链接,点击忽略继续就好。

关键代码

代码语言:javascript
复制
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"  
       maxThreads="150" scheme="https" secure="true"  
       clientAuth="false" sslProtocol="TLS"   
       keystoreFile="C:\00Work\01Programming\01Java\JavaEE\localhost.keystore" keystorePass="123456"/>

clientAuth     false(单向认证)/true(双向认证)

keystoreFile    证书所在目录

keystorePass    创建证书“keystore”的密码

nginx+tomcat配置ssl实现https
nginx+tomcat配置ssl实现https

nginx+tomcat篇

nginx中在conf目录下的 nginx.conf文件中添加如下代码,tomcat目录/conf/server.xml中设置好相应domain即可。

关键代码

代码语言:javascript
复制
 server {
      listen 443; 
      server_name domain;#要访问https的域名
      ssl on;
      root html;
      index index.html index.htm;
      ssl_certificate   C:/zhonya/keytool/ssl/domain.crt;
      ssl_certificate_key  C:/zhonya/keytool/ssl/domain.key;
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
      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://domain

		proxy_set_header Upgrade $http_upgrade;  
		proxy_set_header Connection "upgrade";
      }
    }

附录

Java的keytool生成证书

方法一:

1、CMD命令

代码语言:javascript
复制
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\wind\tomcat\keytool\tomcat.keystore"   -validity 36500

2.输入密码等相应内容

此处暂时不再过多叙述,具体的可查看:

http://lixor.iteye.com/blog/1532655

方法二:

代码语言:javascript
复制
keytool -genkeypair -alias "server"  -keyalg "RSA" -keysize 1024 -keypass "windtomcat" -keystore D:\wind\tomcat\keytool\server.jks -storepass windtomcat -validity 36500 -dname "CN=域名1,CN=域名2,CN=域名3,OU=wind,O=SJ,L=test,ST=HB,C=CN"

据说这种方法可以生成多域名证书,由于当初在chrome中测试始终出现错误提示(本文开始时说的情况),最终没做过多验证。

参考地址:

http://www.xuebuyuan.com/371801.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 纯tomcat篇
  • nginx+tomcat篇
  • 附录
    • Java的keytool生成证书
      • 方法一:
  • 方法二:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档