前言:网友总结业余生活时代变迁:自从有了快餐文化,每天过着皇帝的生活,有人献歌献舞,表演才艺,朕还要挨个批阅点评,盖红章,朕甚是劳累。
一,应用场景
tomcat局域网配置SSL证书,作用就是增加https协议请求
总结来说是因为:
HTTPS 能有效保护用户隐私,能进行有效的身份校验,并能保证数据的保密性、完整性。
可进行 SEO 优化,百度官方公开说明搜索引擎优先 HTTPS 网站。
避免浏览器弹出不安全警告,添加 SSL 证书增强网站可信度。
二,ssl证书获取方式
1,可以在网上获取免费证书,不过使用期限都不长,且有些要绑定域名才能申请,一般以下几个都可以申请
1.阿里云DV SSL证书官网:https://common-buy.aliyun.com/?commodityCode=cas阿里云的证书是 Symantec 签发,Symantec 公司是 SSL/TLS 证书的领先提供商,为全球一百多万台网络服务器提供安全防护。一个阿云账户最多签发20张免费证书。2.腾讯云DV SSL 证书官网:https://cloud.tencent.com/product/ssl腾讯云DV SSL 域名型证书也是由 Symantec 公司签发。快速便捷部署到腾讯云,也可以下载证书,用于其他云服务提供商。3.Let’s Encrypt官网:https://letsencrypt.orgLet’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,安装部署特别简单,总之得到大家的一致认可。
2,或者本地自己生成,命令如下,
opensslgenrsa-des3-outserver.key1024opensslreq-new-x509-keyserver.key-days3650-outclient.ceropensslpkcs12-export-nametest-alias-inclient.cer-inkeyserver.key-outserver.pfxopensslpkcs12-inserver.pfx-clcerts-nokeys-outserver.crtopenssl rsa -in server.key -out server.key.unsecure
会生成以下几个文件,最终只要用到server.pfx(server可以自定义)
client.cer server.crt server.key server.key.unsecure server.pfx
三,补充下各种中间件证书的形式
前面有本地的例子,这里我以阿里云为例子说明,其中qnw.lime.net是域名
服务器类型证书文件类型Tomcatqnw.lime.net.pfx;pfx-password.txtApache qnw.lime.net_public.crt qnw.lime.net_chain.crt qnw.lime.net.key Nginx qnw.lime.net.key qnw.lime.net.pem IISqnw.lime.net.pfx;pfx-password.txt JKS qnw.lime.net.jks;jks-password.txt 其他qnw.lime.net.keyqnw.lime.net.pem根证书又分为 DigiCert EV根证书 Digicert-EV-root.cer DigiCert OV和DV根证书 Digicert-OV-DV-root.cerGlobalSignDV和OV根证书WoSign-RSA-root.crtWoSignRSA根证书 GlobalSign-DV&OV-root.cer WoSign SM2根证书 WoSign-SM2.crt
四,tomcat配置
(1)server.xml配置
上传(复制)server.pfx证书文件到服务器tomcat安装目录,证书目录可自由设置,我上传的路径/opt/apache-tomcat-9.0.1/cert
修改 conf/server.xml
1)建议修改 tomcat 访问端口,将 8080 改为 80(也可以自定义),在浏览器访问时不需要添加端口,将 redirectPort=”8443″的端口改为 443,因为 https 的端口为 443,
2)添加ssl证书和密码,keystoreFile属性指向服务器的 server.pfx文件,
3)如果是阿里云,keystoreType的值为pfx-password.txt的内容,
如果是本地创建的证书,keystoreType的值可以随意
ciphers是加密算法,如果tomcat报错提示中有cannot create new ssl 或者SSL_CIPHER_PROCESS_RULESTR:invalid command,可以适当减少加密算法,一般有如下几种
TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256
最终修改内容如下:
<Connector port=”18086″ protocol=”org.apache.coyote.http11.Http11Nio2Protocol” enableLookups=”false” maxThreads=”1000″ minSpareThreads=”100″ maxSpareThreads=”1000″ minProcessors=”100″ maxProcessors=”1000″ acceptCount=”1500″ disableUploadTimeout=”true” connectionTimeout=”60000″redirectPort=”443″URIEncoding=”UTF-8″ maxPostSize=”102400″ maxHttpHeaderSize =”102400″ useSendfile=”false” compression=”on” compressionMinSize=”2048″ noCompressionUserAgents=”gozilla, traviata” compressableMimeType=”text/html,text/xml,text/javascript,application/javascript,text/css,text/plain,application/json” SSLEnabled=”true” scheme=”https” secure=”true” keystoreFile=”/opt/apache-tomcat-9.0.1/cert/server.pfx” keystoreType=”PKCS12″ keystorePass=”123456″ clientAuth=”false” SSLProtocol=”TLSv1 TLSv1.1 TLSv1.2″ciphers=”TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256″/>
(2)修改conf/web.xml在conf/web.xml添加如下内容,可从 http 跳转到 https,我接在18-22行的<web-app …..version=”4.0″>后面配置,修改如下
注意:加了如下配置之后,http就无法访问,如果需要保留http,可以做个代理或者取消配置,不过因为等保要求可能只能做代理把http代理出来
<login-config> <!– Authorization setting for SSL –> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name></login-config><security-constraint> <!– Authorization setting for SSL –> <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>
(3)验证
五,总结
以上就是tomcat局域网配置SSL证书全部内容,随着安全要求的增加,上述用的到的地方可能会慢慢增多,所以小编就写了这篇文章,有讲的不对的地方欢迎指正。
最后的最后(Last but not least),欢迎交流: