发表日期:2018-09 文章编辑:小灯 浏览次数:2484
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
两种保护通信安全和数据完整性的协议,可以当做并列,前后关系。
传输层安全性协议(Transport Layer Security),及其前身安全套接层(Secure Sockets Layer)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
摘自Wikipedia TLS
证书由第三方 CA 认证机构颁发,网站所有者向 CA 机构申请证书,证书中包含了公钥、颁证机构、网址、失效日期。如果网站使用假冒证书,浏览器向 CA 认证机构发送证书是否合法的请求,如果检测非法证书,浏览器可以直接断开请求。
简而言之,证书是服务器端和客户端安全通信的凭证。
根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式:
具体可查看SSL证书格式普及。
一般本地测试使用这种方法
由于我使用tomcat作为web容器,这里就用java自带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在线生成工具生成
一般是收费的,但是指定域名一年使用腾讯阿里都可以免费生成,前提条件是你拥有一个域名。
比如说腾讯云,SSL免费购买链接
修改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
在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>
如有疑问,欢迎留言共同探讨。
日期:2018-04 浏览次数:6659
日期:2017-02 浏览次数:3342
日期:2017-09 浏览次数:3540
日期:2017-12 浏览次数:3426
日期:2018-12 浏览次数:4678
日期:2016-12 浏览次数:4471
日期:2017-07 浏览次数:13541
日期:2017-12 浏览次数:3387
日期:2018-06 浏览次数:4163
日期:2018-05 浏览次数:4347
日期:2017-12 浏览次数:3470
日期:2017-06 浏览次数:3889
日期:2018-01 浏览次数:3837
日期:2016-12 浏览次数:3807
日期:2018-08 浏览次数:4331
日期:2017-12 浏览次数:3594
日期:2016-09 浏览次数:6286
日期:2018-07 浏览次数:3107
日期:2016-12 浏览次数:3125
日期:2018-10 浏览次数:3282
日期:2018-10 浏览次数:3372
日期:2018-09 浏览次数:3465
日期:2018-02 浏览次数:3484
日期:2015-05 浏览次数:3417
日期:2018-09 浏览次数:3210
日期:2018-06 浏览次数:3336
日期:2017-02 浏览次数:3780
日期:2018-02 浏览次数:4236
日期:2018-02 浏览次数:4041
日期:2016-12 浏览次数:3482
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.