内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文

内网项目启用Https配置手册

软件需求:

  1. OpenSSL https://www.openssl.org/
  2. 已经安装了Java Jdk环境

 

制作前的需求:

  1. 已经配置了Jdk环境变量
  2. 安装好OpenSSL后配置了环境变量

 

 

 

开始制作CA根证书

在任意盘符(我这里选择G盘)下新建一个文件夹 这里我建立一个ca的文件夹用来存储生成的CA证书

 

创建私钥

生成私钥命令:openssl genrsa -out ca/ca-key.pem 1024

 

 

创建证书请求

命令:openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem

 

 

 

 

生成CA自签证书

命令:openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365010年有效期)

 

 

 

制作服务器证书

用 java 自带的 keytool工具生成密钥(密码123456)

命令:keytool -genkey -alias example -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore example.jks

 

 

 

 

用keytool工具生成证书请求(涉及到的证书名字是 example)

命令:keytool -certreq -alias example -sigalg MD5withRSA -file example.csr -keypass 123456 -keystore example.jks -storepass 123456

 

 

 

根据证书请求,用CA签证,生成服务器证书

命令:openssl x509 -req -in example.csr -out example.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -days 365 -set_serial 1

 

 

 

 

向 本地keystore 密钥库中导入证书

命令:keytool -import -v -trustcacerts -keypass 123456 -storepass 123456 -alias root -file ca/ca-cert.pem -keystore example.jks

 

 

 

导入服务器证书

命令:keytool -import -v -trustcacerts -storepass 123456 -alias example -file example.pem -keystore example.jks

 

 

单独导出 CA 作为信任证书

命令:keytool -import -alias example-ca -trustcacerts -file ca/ca-cert.pem -keystore exampletrust.jks

 

这里输入的密码是:123456 证书的密码

 

查看生成的文件

 

 

客户端安装证书:

命令:openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12

 

 

 

 

这里输入的密码是 123456(证书密码)

查看生成证书:ca文件夹下面

 

ca.p12文件就是生成的证书

双击打开导入——》当前用户——》下一步——》输入密码(123456)——》

打开ie浏览器,在 internet 选项``内容中清除ssl状态,重启浏览器再重新访问,就不会再有不信任的提示。

 

 

 

 

点击下一步完成即可!

Tomcat 服务器导入证书

首先复制刚才生成的那两个文件:

 

复制到tomcate 目录下面:例如放到conf文件夹下

 

 

打开server.xml文件 复制下面内容到指定位置:

复制内容:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

      maxThreads="250" scheme="https" secure="true"

      clientAuth="false" sslProtocol="TLS" keystoreFile="conf/example.jks"

      keystorePass = "123456" truststoreFile="conf/exampletrust.jks"

      truststorePass="123456"/>

 

 

 

放置位置:(注意放置位置一定要对!!!!!)

 

说明:123456表示的是证书密码  443是https默认端口

 

修改默认的http端口和https端口

默认Tomcat HTTP端口8080 HTTPS默认端口8443

 

修改下列位置8080——》80      8443——》443

 

 

=-------------------------------------------

 

强制使用Https

打开conf文件夹下面的web.xml(文件尾部!!!!)  添加以下代码到指定位置

 

 

 

<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>

 

 

最终效果

 

 

 

谷歌:

 

 

IE

 

 

参考博客:https://blog.csdn.net/byg184244735/article/details/85071877

 

posted @ 2019-07-02 18:52  程序猿小码  阅读(15159)  评论(2编辑  收藏  举报