2023年7月30日发(作者:)
客户没有证书,证书自己生成:
第一步:为服务器生成证书
使用keytool 为 Tomcat 生成证书,假定目标机器的域名是“ localhost ”, keystore 文件存放在“E:re ”,口令为“smartdot123456”,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg RSA -keysize 2048 -validity 3650 -keystore E:re
-dname "CN=172.20.55.127,OU=cn,O=smartdot,L=cn,ST=cn,c=cn" -storepass smartdot123456 -keypass smartdot123456
第二步:生成csr文件用于提交CA认证生成证书使用
keytool -certReq -alias tomcat -keystore e:re -storepass smartdot123456 -file e:
第三步:这个是为了解决不信任时要导入的
keytool -export -alias tomcat -keystore e:re -file e: -storepass smartdot123456
第四步:配置Tomcat 服务器
打开Tomcat 根目录下的 /conf/ ,找到如下配置段,修改如下:
tomcat 7
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA" keystoreFile="e:/key/" keystorePass="smartdot123456" clientAuth="false" sslProtocol="TLS" /> tomcat 6 maxThreads="150" scheme="https" secure="true" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA" keystoreFile=" e:/key/ " keystorePass="smartdot123456" clientAuth="false" sslProtocol="TLS" /> 第五步: 修改 应用程序的 可以加上这句话: 具体web系统 第六步:ties 端口访问配置 =:8443/organization-webapp =:8443/organization-webapp =:8443/ProcessAdmin 到这里启动tomcat,输入 localhost:8443/ 这时再打开会弹出一个提示框:证书不可信任,有一个警告,说什么需要机构颁发。 这时再双击第一步生成的。一直下一步,最后选“是”。 导入后,再输入地址就不是提示了。直接转向tomcat的猫页,说明成功了。 这时候如果用程序去访问可能还会抛证书不信任的异常(torException: PKIX path ),需要将生成的证书( ) keytool -import -alias tomcatsso -file "E:" -keystore "C:Program FilesJavajdk1.7.0_03jrelibsecuritycacerts" -storepass changeit 其中changeit是jre默认的密码。 信任这个认证? [否]: y 认证已添加至keystore中 如 拒绝访问 使用管理员命令执行 如果抛 No subject alternative names present 请在生成keystore 注意CN必须要为域名(或机器名称)例如 localhost 不能为IP 如果抛 No name matching localhost found 表示你生成keystore CN的名称和你访问的名称不一致 客户有证书并根据证书生成tomcat证书 因我们没有证书,因此使用模拟OpenSSL生成ca和server证书 OpenSSL 生成客户端和服务证书 网上官方网站下载的OPENSSL需要手动去改它的盘符和路径 OPENSSL下载地址 /soft1/ 修改 内容中的文件路径 [ CA_default ] dir = E:Program Files (x86)OpenSSL-Win32binPEMdemoCA new_certs_dir = E:keycanewcerts # default place for new certs. 新建文件夹 newcerts E:Program Files (x86)OpenSSL-Win32 设置环境变量 把c:设成OPENSSL_CONF这样的一个变量,同时把c:opensslbin目录加到你的path里去(根据你们自己的解压后的openssl的实际路径) OPENSSL_CONF E:Program Files (x86) PATH增加 ;E:Program Files (x86)OpenSSL-Win32bin; 第一步:生成根证书所用的密钥 openssl genrsa -des3 -out E: 1024 提示输入密码我们使用:smartdot123456 再次输入确认密码 (密钥,由其是private key是由口令保护的) 第二步:去除CA密钥的口令 openssl rsa -in E: -out E: 输入上述命令后,再次输入密码 smartdot123456 即可 为什么我们要把好好的口令保护给去除呢?这边不是去除而是代表这个证书在被应用程序启动时不需要显示的提示用户输入口令 第三步:生成CA即ROOT CA证书并自签 openssl req -new -x509 -key E: -out E: 由于我们产生的证书为:X509格式,因此需要按照X509格式填入相关的值。 AU-国家家的缩写,如:CHINA=CN,美国=USA,英国=UK,日本=JP State or Province Name-省/洲的缩写或者是全称,如:上海=SH Locality Name-城市的全称或者是缩写,如:上海=SH Organization Name-公司名,如:Cognizant Common Name-要安装这台证书的主机名,证书是和主机名绑定的,如果证书里的主机名和你实际的主机名不符,这张证书就是非法的证书。 我们不能够填IP,一定一定要填主机名即域名这样的东西,比如说我填的是,但我的主机怎么知道是指:172.20.95.69或者说是指localhost这台机器呢? 打开C:WindowsSystem32driversetchosts这个文件,如下: localhost 172.20.95.69 Look,我们的CA证书生成了,可以双击这张证书,查看信息后关闭它。 目前这张ROOT 证书,只是个自签的产品,因为是自签,一般其它客户端的IE里因此是不会带有这张根证书的。 要其实客户端也能信任这张根证书,我们必须怎么办? 双击证书查看 将它安装到我们的IE的信任域里。 将ROOT CA导入客户端的根级信任域,有多少台客户端,每个客户端都要导一边这个证书 点[导入]按钮 下一步,下一步,此时会有一个弹出框,选“yes(是)”完成导入。 再来打开我们的文件 发现了没有,这张证书是有效的证书了,所以在“证书信息”前原有的一个红叉叉,消失了。 第四步:生成Web服务器端证书密钥 我们的root证书有了,现在可以生成Web服务器端的证书了,并且用root ca去签名 Openssl genrsa -des3 -out E: 1024 先生成密钥,密码 smardot123456 执行除去密码命令 openssl rsa -in E: -out E: 去除密码(提示:enter pass phrase for 时输入刚才生成密钥时的密码即smardot123456 第五步:生成Web服务器端证书的签名请求 openssl req -new -key E: -out E: 生成服务器端证书请求时需要输入server端key的口令,我们为了方便,也用6个a。 第六步:用Root CA去对Web服务器的证书请求即csr(certificate request)进行签名认证 openssl ca -in e: -out e: -cert e: -keyfile e: 使用ca和server证书生成tomcat证书 第一步:为服务器生成证书 为Tomcat的server所在的服务器生成一个文件 很多网上的资料是拿原先的文件转成keystore文件,其实是不对的,需要单独生成一张文件。 怎么生成证书?回顾一下上文: 1) 生成KEY 2) 生成证书请求 3) 用CA签名 使用keytool 为 Tomcat 生成证书,假定目标机器的域名是“ localhost ”, keystore 文件存放在“E:re ”,口令为“smartdot123456”,使用如下命令生成: keytool -genkey -v -alias tomcat -keyalg RSA -keysize 1024 -validity 3650 -keystore E: -dname "CN=,OU=cn,O=smartdot,L=BJ,ST=cn,c=cn" -storepass smartdot123456 第二步:生成JSK的CSR keytool -certreq -alias tomcat -sigalg "MD5withRSA" -file E: -keypass smartdot123456 -keystore E: -storepass smartdot123456 此处注意: Alias名必须和上面一致 密码和上面一致 第三步: 使用openssl结合与为jsk的csr来签名认证并产生jks格式的crt openssl x509 -req -in E: -out E: -CA E: -CAkey E: -days 3650 -CAcreateserial -sha1 -trustout -CA E: -CAkey E: -days 3650 -CAserial -sha1 –trustout 于是,我们有了一张符合jks格式的crt证书叫文件,来查看它。 第四步:生成符合x509格式的jks文件 将Root CA导入jks信任域: 前面我说了,jks信任域是读不到IE的根级信任域的,因此要手动把文件导入jks的信任域 keytool -import -alias rootca -trustcacerts -file e: -keystore -storepass smartdot123456 第五步:增加客户端客户端信任 现在我们的文件中有两个realm(域),一个是: 2本身的csr(产生的签书请求认证的域,还没被认证,因为认证的内容变成了文件了是不是?) 刚才步骤中导入的Root CA认证域 那么客户端信任Root CA没有问题,但由于server端本身的信任域还只是处于“请求被签名”的状态,那么客户端如何去信任这个jks文件呢? 答案就是:补链,补这根信任链! keytool -import -alias tomcatX509 -file e: -keystore e: -storepass smartdot123456 我们不是生成过tomcat’.crt吗?把它导入jks不就是能够把原有的“正在处于请求被签名认证”这个状态改成“已经被Root CA签名认证” 了吗?对吧? 所以,我们用于布署tomcat的ssl证书的jks格式的文件已经完整了 第六步:修改tomcat配置文件以及项目 参考 自己证书 参考客户没有证书,证书自己生成 第 四、五、六步骤。第四步:配置Tomcat 服务器 参考资料 /tiercel2008/article/details/7726302
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690665291a390802.html
评论列表(0条)