OpenSSL/Tomcat HTTPS 搭建
admin
2023-03-24 07:40:34
0

总结一下 OpenSSL和Tomcat  https的搭建

第一部分:首先是看看 OpenSSL的搞法:

创建证书的步骤: 

(1)生成私钥

(2)生成待签名证书

(3)生成x509证书, 用CA私钥进行签名

(4)导成浏览器支持的p12格式证书

 

一:生成CA证书
CA
1. 创建私钥 :
openssl genrsa -ges3 -out ca-key.pem 2048 -sha256
2.创建证书请求 :
openssl req -new -out ca-req.csr -key ca-key.pem -sha256

3.自签署证书 :
openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 1000 -sha256

(2-3 可以一起:

openssl req -x509 -new -out ca-cert.pem -key ca-key.prm -days 1000 -sha256)

4.将证书导出成浏览器支持的.p12格式 :

openssl pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12 
     
三.生成server证书
1.创建私钥 :
openssl genrsa -des -out server-key.pem  2048 -sha256
2.创建证书请求 :
openssl req -new -out server-req.csr -key server-key.pem -sha256
3.自签署证书 :
openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650 
4.将证书导出成浏览器支持的.p12格式 :
openssl pkcs12 -export -clcerts -in server-cert.pem -inkey server-key.pem -out server.p12 
 

四.生成client证书 
1.创建私钥 :
openssl genrsa -out client-key.pem 1024 -sha256
2.创建证书请求 :
openssl req -new -out client-req.csr -key client-key.pem -sha256

3.自签署证书 :

openssl x509 -req -in  client-req.csr -out  client-cert.pem -signkey  client-key.pem -CA  ca-cert.pem -CAkey  ca-key.pem -CAcreateserial -days 3650  -sha256
4.将证书导出成浏览器支持的.p12格式 :
openssl pkcs12 -export -clcerts -in  client-cert.pem -inkey client-key.pem -out  client.p12 


五.根据ca证书生成jks文件 (Java keystore)
keytool -keystore truststore.jks -keypass 222222 -storepass 222222 -alias ca -import -trustcacerts -file ca/ca-cert.pem

 

第二部分 .配置tomcat ssl
1. conf/server.xml。

tomcat6中多了SSLEnabled="true"属性。keystorefile, truststorefile设置为你正确的相关路径 
xml 代码
 tomcat 5.5的配置:
             maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
             enableLookups="false" disableUploadTimeout="true"
             acceptCount="100" scheme="https" secure="true"
             clientAuth="true" sslProtocol="TLS" 
             keystoreFile="server.p12" keystorePass="1111" keystoreType="PKCS12" 
             truststoreFile="truststore.jks" truststorePass="2222" truststoreType="JKS" />  
tomcat6.0的配置:
               maxThreads="150" scheme="https" secure="true"
               clientAuth="true" sslProtocol="TLS"
               keystoreFile="server.p12" keystorePass="1111" keystoreType="PKCS12" 
               truststoreFile="truststore.jks" truststorePass="2222" truststoreType="JKS"/>

 

七、测试(linux下)
openssl s_client -connect localhost:8443 -cert /home/ssl/client-cert.pem -key /home/ssl/client-key.pem -tls1 -CAfile /home/ssl/ca-cert.pem -state -showcerts

GET /index.jsp HTTP/1.0

 

八、导入证书
服务端导入server.P12 和ca.p12证书
客户端导入将ca.p12,client.p12证书
IE中(打开IE->;Internet选项->内容->证书)

ca.p12导入至受信任的根证书颁发机构,client.p12导入至个人

Firefox中(工具-选项-高级-加密-查看证书-您的证书)

将ca.p12和client.p12均导入这里
 

注意:ca,server,client的证书的common name(ca=ca,server=localhost,client=dong)一定不能重复,否则ssl不成功

 

九、tomcat应用程序使用浏览器证书认证

在server/webapps/manager/WEB-INF/web.xml中,将BASIC认证改为证书认证


    CLIENT-CERT
    Tomcat Manager Application
 

 

在conf/tomcat-users.xml中填入下列内容


 
 
 
 

 

访问http://localhost:8443即可验证ssl是否成功

访问http://localhost:8443/manager/html可验证应用程序利用client证书验证是否成功


附件:

批量创建证书的格式:

#!/bin/bash
# using sample
# sh genClient.sh 20160728_Client001 "CHANGSHA SHINING POWER ELECTRONICS CO.,LTD" DS2015-F0105-00104 james.taoA1@murata.com
/usr/bin/expect <set time 30
spawn openssl req -new -key shdcweb1client.pem -out client/$1.csr -sha256
expect {
"Country Name" {send "CN\r";exp_continue }
"State or Province Name" {send "ShangHai\r";exp_continue }
"Locality Name" {send "ShangHai\r";exp_continue }
"Organization Name" {send "Murata\r";exp_continue }
"Organizational Unit" {send "MCI\r";exp_continue }
"Common Name" {send "$2\r";exp_continue }
"Email Address" {send "$4\r";exp_continue }
"A challenge password" {send "murata\r";exp_continue }
"An optional company name" {send "MCI\r";exp_continue }

}

spawn openssl ca -policy policy_anything -days 365 -cert shdcweb1ca.crt -keyfile shdcweb1cakey.pem -in client/$1.csr -out client/$1.crt
expect {
"Enter pass phrase" {send "CH61is@2016\r";exp_continue }
"Sign the certificate" {send "y\r";exp_continue }
"1 out of 1 certificate requests certified" {send "y\r";exp_continue }

}

spawn openssl pkcs12 -export -clcerts -in client/$1.crt -inkey shdcweb1client.pem -out client/$1.p12
expect {
"Enter Export Password" {send "$3\r";exp_continue }
"Verifying - Enter Export Password" {send "$3\r" }

}

EOF
~


相关内容

热门资讯

今日重大通报“天天快来麻将怎么... 有 亲,根据资深记者爆料天天快来麻将是可以开挂的,确实有挂(咨询软件无需...
终于明白“掌心麻将圈怎么装挂?... 有 亲,根据资深记者爆料掌心麻将圈是可以开挂的,确实有挂(咨询软件无需打...
今日重大消息“蛮籽麻将重庆可以... 网上科普关于“蛮籽麻将重庆有没有挂”话题很是火热,小编也是针对蛮籽麻将重庆作*弊开挂的方法以及开挂对...
我来教教您“皇豪众娱炸/金/花... 有 亲,根据资深记者爆料皇豪众娱炸/金/花是可以开挂的,确实有挂(咨询软...
【第一财经】“新蜜瓜拼三张真的... 【第一财经】“新蜜瓜拼三张真的有挂吗?”(果然有透视挂)您好,新蜜瓜拼三张这个游戏其实有挂的,确实是...
终于懂了“皇豪众娱炸/金/花开... 家人们!今天小编来为大家解答皇豪众娱炸/金/花透视挂怎么安装这个问题咨询软件客服徽4282891的挂...
【第一资讯】“中至九江麻将真的... 有 亲,根据资深记者爆料中至九江麻将是可以开挂的,确实有挂(咨询软件无需...
今日重大消息“哈灵麻将到底有挂... 网上科普关于“哈灵麻将有没有挂”话题很是火热,小编也是针对哈灵麻将作*弊开挂的方法以及开挂对应的知识...
卢秀燕罕见痛批赖清德“摆烂”:... 海峡导报综合报道 台行政机构负责人卓荣泰不副署民意机构三读的“财政收支划分法”引发争议,蓝白民代日前...
最新引进“欢乐龙城9开挂器?”... 有 亲,根据资深记者爆料欢乐龙城9是可以开挂的,确实有挂(咨询软件无需打...