内网Https 自签Https证书 配合Tomcat 实现内网Https详细图
软件需求:
OpenSSL https://www.openssl.org/
已经安装了Java Jdk环境
制作前的需求:
1. 已经配置了Jdk环境变量
java-version
2. 安装好OpenSSL后配置了环境变量
openssl version
开始制作CA根证书
在根目录新建ca的文件夹用来存储生成的CA证书,进入ca文件夹
创建私钥
生成私钥命令:openssl genrsa -out ca-key.pem 1024
创建证书请求
命令:openssl req -new -out ca-req.csr -key ca-key.pem
生成CA自签证书
命令:openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650(10年有效期)
制作服务器证书
用 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
-file example.csr -keypass 123456 -keystore example.jks -storepass 123456
根据证书请求,用CA签证,生成服务器证书
命令:openssl x509 -req -in example.csr
-out example.pem -CA ca-cert.pem -CAkey 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-cert.pem -keystore exampletrust.jks
这里输入的密码是:123456 证书的密码
查看生成的文件:
客户端安装证书:
命令:openssl pkcs12 -export -clcerts -in
ca-cert.pem -inkey ca-key.pem -out 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