首页 > Web开发 > 详细

tomcat 中增加https

时间:2019-08-25 14:57:11      阅读:86      评论:0      收藏:0      [点我收藏+]

首先制作证书

windows中使用OpenSSL工具,我使用的是Win64OpenSSL_Light-1_0_2s,下载地址:

制作根证书
1.创建根证书密钥文件(自己做CA)
openssl genrsa -out myca.key 1024
2.创建根证书的申请文件
openssl req -new -key myca.key -out myca.csr -days 365 -config C:\usr\local\ssl\openssl.cfg
3.创建一个自当前日期起为期一年的根证书
openssl x509 -req -days 365 -sha256 -extfile c:\usr\local\ssl\openssl.cfg -extensions v3_ca -signkey myca.key -in myca.csr -out myca.crt

制作service服务端证书
1.创建服务器证书密钥
openssl genrsa -out server.key 1024
2.创建服务器证书的申请文件
openssl req -new -key server.key -out server.csr -config c:\usr\local\ssl\openssl.cfg
3.创建自当前日期起有效期为期一年的服务器证书
openssl x509 -req -days 365 -sha256 -CA myca.crt -CAkey myca.key -CAcreateserial -extfile c:\usr\local\ssl\openssl.cfg -extensions v3_req -in server.csr -out server.crt
4.导出.p12文件
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "server"
5.将.p12文件导入到keystore jks文件
keytool -importkeystore -v -srckeystore server.p12 -srcstoretype pkcs12 -srcstorepass 11111111 -destkeystore server.keystore -deststoretype jks -deststorepass 11111111
最后将生成的jks文件server.keystore 配置在tomcat安装目录下conf中的server.xml的https连接器中;然后再浏览器中导入根证书myca.crt

注意:在生成服务器证书(第3步)的时候,需要在文件openssl.cfg中配置subjectAltname=@alt_names,否则chrome会出现证书无效的情况

技术分享图片

openssl.cfg中的部分配置如下所示,

[alt_names]
IP.1 = 127.0.0.1
IP.2 = 192.168.1.1
[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=@alt_names

tomcat中配置

一.将证书复制到tomcat的conf配置文件夹下,本例中是将上面生成服务器证书的最后一步中生成的 server.keystore 证书,复制到conf文件夹下

二.修改tomcat的server.xml配置文件

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               redirectPort="443" />
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" maxThreads="150" SSLEnabled="true" keystoreFile="conf/server.keystore" keystorePass="11111111">
          
     </Connector>

三.修改tomcat的web.xml配置文件,在<web-app></web-app>节中最后添加下面一段配置,

<login-config>
          <!-- Authorization setting for SSL -->
          <auth-method>CLIENT-CERT</auth-method>
          <realm-name>Client Cert Users-only Area</realm-name>
      </login-config>
      <security-constraint>
          <!-- Authorization setting for SSL -->
          <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>

 

spring boot 中配置https访问

server:
  port: 8443
  tomcat:
    port-header: HEAD,PUT,DELETE,OPTIONS,TRACE,COPY,SEARCH,PROPFIND
    min-spare-threads: 20
    max-threads: 500
    uri-encoding: UTF-8
  ssl:
    key-store: zhangyu.keystore
    key-store-type: JKS
    key-store-password: 11111111
    key-alias: server

注意标黄色背景的key-alias,应该是证书别名,是在上面生成服务器证书中的第5步

技术分享图片

 

 否则就会出现

Tomcat错误“Alias name tomcat does not identify a key entry”解决的错误

 

tomcat 中增加https

原文:https://www.cnblogs.com/bayu/p/11407823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!