点击上方“全栈开发者社区”,选择“置顶公众号”

关键时刻,第一时间送达!

全栈资料:全栈开发者社区资源库更新啦! 小编从java开始带大家学习,大家养成好习惯,记得把公众号置顶,知识点由浅入深,相信跟着小编步伐坚持下去的将来一定精通全栈,行业大佬!有问题撩小编微信:15222301178


HTTPS 是一个安全通信信道,用于在客户计算机和服务器之间交换信息。它使用安全套接字层 (SSL)。

HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议

HTTPS 是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的 完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。

假设您使用Netscape浏览器访问一个如NetPlaza的站点,并且观看其商品类目。当您希望定购商品时,您可以通过URL进行,单击发送,将相应的订单发送到供应商那里,浏览器的HTTPS层将对信息进行加密。从服务器返回的加密信息也是经过加密的,在您服务器的HTTPS层进行解密后显示。

HTTPSSSL支持使用X.509数字认证,这样(如果需要的话),用户可以确认发送者是谁。SSL是一个开放的协议。

注意:HTTPS不要和由EIT开发的SHTTP混淆起来。

HTTPS是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。

在做电子商务站点的时候,经常要求浏览器在httpshttp之间转化。

一、申请Https证书

https://common-buy.aliyun.com/?spm=5176.2020520163.cas.1.zTLyhO&commodityCode=cas#/buy

二、安装证书

Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一。

文件说明:

  1. 证书文件214193373120488.pem,包含两段内容,请不要删除任何一段内容。

  2. 如果是证书系统创建的CSR,还包含:证书私钥文件214193373120488.key、PFX格式证书文件214193373120488.pfx、PFX格式证书密码文件pfx-password.txt。

1、证书格式转换

在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,附件中只包含214193373120488.pem文件,还需要将私钥文件拷贝到cert目录,命名为214193373120488.key;如果是系统创建的CSR,请直接到第2步。

到cert目录下执行如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记:

openssl pkcs12 -export -out 214193373120488.pfx -inkey214193373120488.key -in 214193373120488.pem 
2、PFX证书安装

找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到

<Connector port="8443"
   protocol="HTTP/1.1"
   SSLEnabled="true"
   scheme="https"
   secure="true"
   keystoreFile="cert/214193373120488.pfx"
   keystoreType="PKCS12"
   keystorePass="证书密码"
   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"/>

3、JKS证书安装

( 1 )使用java jdk将PFX格式证书转换为JKS格式证书(windows环境注意在%JAVA_HOME%/jdk/bin目录下执行)

keytool -importkeystore -srckeystore 214193373120488.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS 
回车后输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。

( 2 )找到安装 Tomcat 目录下该文件Server.xml,一般默认路径都是在 conf 文件夹中。找到

<Connector port="8443"
   protocol="HTTP/1.1"
   SSLEnabled="true"
   scheme="https"
   secure="true"
   keystoreFile="cert/214193373120488.pfx"
   keystoreType="PKCS12"
   keystorePass="证书密码"
   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"/>

( 注意:不要直接拷贝所有配置,只需添加 keystoreFile,keystorePass等参数即可,其它参数请根据自己的实际情况修改 )

4、 重启 Tomcat。

5、 通过 https 方式访问您的站点,测试站点证书的安装配置,如遇到证书不信任问题,请查看帮助视频。

三、域名或者“http://”强制跳转到“https://服务”

  1. 在tomcat里找到conf文件夹下的web.xml文件 

   2. 找到如下代码片段(在最下面)

<welcome-file-list>
       <welcome-file>index.html</welcome-file>
       <welcome-file>index.htm</welcome-file>
       <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

3.在 /welcome-file-list 下面添加

<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>

经典文章回顾:

初识微服务架构

老邓头Java学习大纲(一)

写给Java程序员学习路线图

老邓头Python学习大纲(一)

Linux下Redis的安装和部署

面试官最喜欢问的十道java面试题

老邓头Linux云计算架构师思维导图

一线互联网公司Java高级面试题总结

面试系列-40个Java多线程问题总结

SpringBoot入门系列:第一篇 Hello World

Java集合类: Set、List、Map、Queue使用场景梳理

Java Web架构知识整理——记一次面试经历(文末附内推要求)

美团、滴滴、阿里、京东的 Dubbo / JVM / Spring 面试题及答案

本公众号会不定期给大家发福利,包括送书、学习资源等,敬请期待吧!

推送内容如果现在工作用不上,可以先转发朋友圈或收藏,用的时候方便找。

顺手点点底部小广告哦,爱你们!

原文始发于微信公众号(全栈开发者社区):如何将网站的Http请求转为Https请求