tomcat增加https访问配置方案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

客户没有证书,证书自己生成:第一步:为服务器生成证书使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“E:\key\tomcat.keystore”,口令为“smartdot123456”,使用如下命令生成:keytool-genkey-v-aliastomcat-keyalgRSA-keysize2048-validity3650-keystoreE:\key\tomcat.keystore-dnameCN=172.20.55.127,OU=cn,O=smartdot,L=cn,ST=cn,c=cn-storepasssmartdot123456-keypasssmartdot123456第二步:生成csr文件用于提交CA认证生成证书使用keytool-certReq-aliastomcat-keystoree:\key\tomcat.keystore-storepasssmartdot123456-filee:\key\tomcat.csr第三步:这个tomcat.cer是为了解决不信任时要导入的keytool-export-aliastomcat-keystoree:\key\tomcat.keystore-filee:\key\tomcat.cer-storepasssmartdot123456第四步:配置Tomcat服务器打开Tomcat根目录下的/conf/server.xml,找到如下配置段,修改如下:tomcat7Connectorport=443protocol=HTTP/1.1SSLEnabled=truemaxThreads=150scheme=httpssecure=trueciphers=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_SHAkeystoreFile=e:/key/smartdot.storekeystorePass=smartdot123456clientAuth=falsesslProtocol=TLS/tomcat6Connectorport=443protocol=org.apache.coyote.http11.Http11ProtocolSSLEnabled=truemaxThreads=150scheme=httpssecure=trueciphers=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_SHAkeystoreFile=e:/key/smartdot.storekeystorePass=smartdot123456clientAuth=falsesslProtocol=TLS/第五步:web.xml修改应用程序的web.xml可以加上这句话:具体web系统login-config!--AuthorizationsettingforSSL--auth-methodCLIENT-CERT/auth-methodrealm-nameClientCertUsers-onlyArea/realm-name/login-configsecurity-constraint!--AuthorizationsettingforSSL--web-resource-collectionweb-resource-nameSSL/web-resource-nameurl-pattern/*/url-pattern/web-resource-collectionuser-data-constrainttransport-guaranteeCONFIDENTIAL/transport-guarantee/user-data-constraint/security-constraint第六步:application.properties端口访问配置organization.service.url=https\://demo.com\:8443/organization-webapppermission.service.url=https\://demo.com\:8443/organization-webapppolicy.service.url=https\://demo.com\:8443/ProcessAdmin到这里启动tomcat,输入这时再打开会弹出一个提示框:证书不可信任,有一个警告,说什么需要机构颁发。这时再双击第一步生成的tomcat.cer。一直下一步,最后选“是”。导入后,再输入地址就不是提示了。直接转向tomcat的猫页,说明成功了。这时候如果用程序去访问可能还会抛证书不信任的异常(sun.security.validator.ValidatorException:PKIXpathbuildingfailed...),需要将生成的证书(tomcat.cer)keytool-import-aliastomcatsso-fileE:\key\tomcat.cer-keystoreC:\ProgramFiles\Java\jdk1.7.0_03\jre\lib\security\cacerts-storepasschangeit其中changeit是jre默认的密码。信任这个认证?[否]:y认证已添加至keystore中如拒绝访问使用管理员命令执行如果抛Nosubjectalternativenamespresent请在生成keystore注意CN必须要为域名(或机器名称)例如localhost不能为IP如果抛Nonamematchinglocalhostfound表示你生成keystoreCN的名称和你访问的名称不一致客户有证书并根据证书生成tomcat证书因我们没有证书,因此使用模拟OpenSSL生成ca和server证书OpenSSL生成客户端和服务证书网上官方网站下载的OPENSSL需要手动去改它的盘符和路径OPENSSL下载地址修改openssl.cfg内容中的文件路径[CA_default]dir=E:\\ProgramFiles(x86)\\OpenSSL-Win32\\bin\\PEM\\demoCAnew_certs_dir=E:\\key\\ca\\newcerts#defaultplacefornewcerts.新建文件夹newcertsE:\ProgramFiles(x86)\OpenSSL-Win32设置环境变量把c:\openssl\bin\openssl.cnf设成OPENSSL_CONF这样的一个变量,同时把c:\openssl\bin目录加到你的path里去(根据你们自己的解压后的openssl的实际路径)OPENSSL_CONFE:\ProgramFiles(x86)\OpenSSL-Win32\bin\openssl.cfgPATH增加;E:\ProgramFiles(x86)\OpenSSL-Win32\bin;第一步:生成根证书所用的密钥opensslgenrsa-des3-outE:\key\ca\ca.key1024提示输入密码我们使用:smartdot123456再次输入确认密码(密钥,由其是privatekey是由口令保护的)第二步:去除CA密钥的口令opensslrsa-inE:\key\ca\ca.key-outE:\key\ca\ca.key输入上述命令后,再次输入密码smartdot123456即可为什么我们要把好好的口令保护给去除呢?这边不是去除而是代表这个证书在被应用程序启动时不需要显示的提示用户输入口令第三步:生成CA即ROOTCA证书并自签opensslreq-new-x509-keyE:\\key\\ca\\ca.key-outE:\\key\\ca\\ca.crt由于我们产生的证书为:X509格式,因此需要按照X509格式填入相关的值。AU-国家家的缩写,如:CHINA=CN,美国=USA,英国=UK,日本=JPStateorProvinceName-省/洲的缩写或者是全称,如:上海=SHLocalityName-城市的全称或者是缩写,如:上海=SHOrganizationName-公司名,如:CognizantCommonName-要安装这台证书的主机名,证书是和主机名绑定的,如果证书里的主机名和你实际的主机名不符,这张证书就是非法的证书。我们不能够填IP,一定一定要填主机名即域名这样的东西,比如说我填的是demo.com,但我的主机怎么知道demo.com是指:172.20.95.69或者说是指localhost这台机器呢?打开C:\Windows\System32\drivers\etc\hosts这个文件,如下:localhostdemo.com172.20.95.69demo.comLook,我们的CA证书生成了,可以双击这张证书,查看信息后关闭它。目前这张ROOT证书,只是个自签的产品,因为是自签,一般其它客户端的IE里因此是不会带有这张根证书的。要其实客户端也能信任这张根证书,我们必须怎么办?双击证书查看将它安装到我们的IE的信任域里。将ROOTCA导入客户端的根级信任域,有多少台客户端,每个客户端都要导一边这个证书点[导入]按钮下一步,下一步,此时会有一个弹出框,选“yes(是)”完成导入。再来打开我们的ca.crt文件发现了没有,这张证书是有效的证书了,所以在“证书信息”前原有的一个红叉叉,消失了。第四步:生成Web服务器端证书密钥我们的root证书有了,现在可以生成Web服务器端的证书了,并且用rootca去签名Opensslgenrsa-des3-outE:\key\ca\server.key1024先生成密钥,密码smardot123456执行除去密码命令opensslrsa-inE:\key\ca\server.key-outE:\key\ca\server.key去除密码(提示:enterpassphraseforserver.key时输入刚才生成密钥时的密码即smardot123456第五步:生成Web服务器端证书的签名请求opensslreq-new-keyE:\key\ca\server.key-outE:\key\ca\server.csr生成服务器端证书请求时需要输入server端key的口令,我们为了方便,也用6个a。第六步:用RootCA去对Web服务器的证书请求即csr(certificaterequest)进行签名认证opensslca-ine:\key\ca\server.csr-oute:\key\

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功