欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

网站百科

为您解码网站建设的点点滴滴

搭建本地HTTPS环境

发表日期:2018-09 文章编辑:小灯 浏览次数:2196

HTTPS 是http的扩展,简单来说就是在 HTTP 协议基础上加了一层TLS/ SSL 加密协议。

Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP) for secure communication over a computer network, and is widely used on the Internet.[1][2] In HTTPS, the communication protocol is encrypted using Transport Layer Security (TLS), or formerly, its predecessor, Secure Sockets Layer (SSL). The protocol is therefore also often referred to as HTTP over TLS,[3] or HTTP over SSL.
摘自Wikipedia HTTPS

2.2 TLS和SSL

两种保护通信安全和数据完整性的协议,可以当做并列,前后关系。

传输层安全性协议(Transport Layer Security),及其前身安全套接层(Secure Sockets Layer)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
摘自Wikipedia TLS

2.3 证书

2.3.1 什么是证书

证书由第三方 CA 认证机构颁发,网站所有者向 CA 机构申请证书,证书中包含了公钥、颁证机构、网址、失效日期。如果网站使用假冒证书,浏览器向 CA 认证机构发送证书是否合法的请求,如果检测非法证书,浏览器可以直接断开请求。

简而言之,证书是服务器端和客户端安全通信的凭证。

2.3.2 常见SSL证书格式

根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式:

  • .DER .CER,文件是二进制格式,只保存证书,不保存私钥。
  • .PEM,一般是文本格式,可保存证书,可保存私钥。
  • .CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。
  • .PFX .P12,二进制格式,同时包含证书和私钥,一般有密码保护。
  • .JKS,二进制格式,同时包含证书和私钥,一般有密码保护。

具体可查看SSL证书格式普及。

2.3.3 CSR,KEY和X.509

  • CSR 是Certificate Signing Request的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。
  • KEY 通常指私钥
  • X.509 是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。

3. 两种渠道获得SSL证书

3.1 自签

一般本地测试使用这种方法
由于我使用tomcat作为web容器,这里就用java自带keytool工具生成。

3.1.1 cmd输入keytool命令

keytool -genkey -alias cas -keyalg RSA -keysize 2048-keypass changeit -storepass changeit -keystore httptestkian.jks-dname "CN=http://httptestkian.com/,OU=httptestkian.com,O=httptestkian,L=httptestkian,ST=httptestkian,C=CN" 

使用的参数含义

参数名称 参数含义
-genkey 在用户主目录中创建一个默认文件”.keystore”,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias 产生别名 缺省值”mykey”
-keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA))
-keysize 指定密钥长度 缺省值1024
-keypass 指定别名条目的密码(私钥的密码)
-storepass 指定密钥库的密码(获取keystore信息所需的密码)
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)
-dname 指定证书拥有者信息 例如: “CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码”

再列一些keytool常用的例子

# 把密钥库导出成证书文件 keytool -export -alias cas.server.com -keystore casServer.keystore -file casServer.crt -storepass changeit # 查看证书 keytool -printcert -file casServer.crt # 将创建过的证书导入java的cacerts证书库(需要管理员权限) # 切换到目录 ${JAVA_HOME}/jre/lib/security keytool -import -alias cas.server.com -keystore cacerts -file casServer.keystore # 查看JDK证书内容 keytool -list -v -keystore cacerts -alias cas.server.com # 根据 alias 别名删除 JDK 证书, JDK证书目录: cd 'C:\Program Files (x86)\Java\jdk1.8.0_172\jre\lib\security\' keytool -delete -alias cas.server.com -keystore cacerts 

如果对命令不熟悉,可以使用在线工具CSR在线生成工具生成

3.JPG
点击KeyTool生成即可获得命令,将命令粘贴到命令行执行即可。
1.JPG

3.2 第三方CA颁发

一般是收费的,但是指定域名一年使用腾讯阿里都可以免费生成,前提条件是你拥有一个域名。
比如说腾讯云,SSL免费购买链接

4.JPG
具体步骤参照官方指引。
购买成功并验证域名之后可下载证书文档,比如说申请的为www.testdomain.com,则下载文件为www.testdomain.com.zip。文件中包含针对IIS,tomcat,nginx等多种web容器适用的证书文件。

4.配置tomcat实现HTTPS

修改conf/server.xml文件

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig><Certificate certificateKeystoreFile="D:/temp/httptestkian.com.jks"certificateKeystorePassword="changeit" type="RSA" /></SSLHostConfig> </Connector> 

重启tomcat服务,浏览器中输入https://localhost:8443/cas/login

2.JPG

5. tomcat8配置HTTP自动跳转HTTPS

在conf/web.xml中</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> 

6. 结语

如有疑问,欢迎留言共同探讨。


本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户学习参考,本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:https://www.dengtar.com/20398.html
相关开发语言
 八年  行业经验

多一份参考,总有益处

联系深圳网站公司塔灯网络,免费获得网站建设方案及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:余经理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

  • QQ咨询
  • 在线咨询
  • 官方微信
  • 联系电话
    座机0755-29185426
    手机13699882642
  • 预约上门
  • 返回顶部