FreeSSL.cn 是一个免费提供 HTTPS 证书申请、HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推动 HTTPS 证书的普及与应用,简化证书申请的流程。javascript
固然了,我看重的不是免费,而是 FreeSSL 使用起来很是人性化。我是一个计算机常识很是薄弱的程序员(羞愧一下),但经过 FreeSSL,我居然能够独自完成 Tomcat 的 HTTPS 配置!css
不少年之前,公司要作华夏银行的接口对接,须要 HTTPS 访问,大概花了 3000 块买的证书,最后证书还有问题,HTTPS 也没搞定。总之,坑的很!html
FreeSSL.cn 有很大的不一样,申请很是便捷,优势不少,值得推荐一波。毕竟不再用邮件、电话各类联系了(也许时代进步了)。java
第一步,填写域名,点击「建立免费的 SSL 证书」程序员
第二步,填写邮箱,点击「建立」算法
1)证书类型默认为 RSAapache
RSA 和 ECC 有什么区别呢?能够经过下面几段文字了解一下。json
HTTPS 经过 TLS 层和证书机制提供了内容加密、身份认证和数据完整性三大功能,能够有效防止数据被监听或篡改,还能抵御 MITM(中间人)攻击。TLS 在实施加密过程当中,须要用到非对称密钥交换和对称内容加密两大算法。segmentfault
对称内容加密强度很是高,加解密速度也很快,只是没法安全地生成和保管密钥。在 TLS 协议中,应用数据都是通过对称加密后传输的,传输中所使用的对称密钥,则是在握手阶段经过非对称密钥交换而来。常见的 AES-GCM、ChaCha20-Poly1305,都是对称加密算法。浏览器
非对称密钥交换能在不安全的数据通道中,产生只有通讯双方才知道的对称加密密钥。目前最经常使用的密钥交换算法有 RSA 和 ECDHE:RSA 历史悠久,支持度好,但不支持 PFS(Perfect Forward Secrecy);而 ECDHE 是使用了 ECC(椭圆曲线)的 DH(Diffie-Hellman)算法,计算速度快,支持 PFS。
2)验证类型默认为 DNS
DNS 和文件验证有什么区别呢?咱们再来一块儿了解下。
首先,咱们须要明白一点,CA(Certificate Authority,证书颁发机构) 须要验证咱们是否拥有该域名,这样才给咱们颁发证书。
文件验证(HTTP):CA 将经过访问特定 URL 地址来验证咱们是否拥有域名的全部权。所以,咱们须要下载给定的验证文件,并上传到您的服务器。
DNS 验证:CA 将经过查询 DNS 的 TXT 记录来肯定咱们对该域名的全部权。咱们只须要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下,等待大约 1 分钟便可验证成功。
因此,若是对服务器操做方便的话,能够选择文件验证;若是对域名的服务器操做比较方便的话,能够选择 DNS 验证。若是两个都方便的话,请随意选啦。
3)CSR生成默认为离线生成
离线生成、浏览器生成 和 我有 CSR 又有什么区别呢?来,咱们继续了解一下。
离线生成 推荐!!!:私钥在本地加密存储,更安全;公钥自动合成,支持常见证书格式转换,方便部署;支持部分 WebServer 的一键部署,很是便捷。
离线生成的时候,须要先安装 KeyManager,能够提供安全便捷的 SSL 证书申请和管理。下载地址以下:
https://keymanager.org/
Windows 的话,安装的时候要选择“以管理员身份运行”。
浏览器生成:在浏览器支持 Web Cryptography
的状况下,会使用浏览器根据用户的信息生成 CSR 文件。
Web Cryptography,网络密码学,用于在 Web 应用程序中执行基本加密操做的 JavaScript API。不少浏览器并不支持
我有 CSR:能够粘贴本身的 CSR,而后建立。
第三步,选择离线生成,打开 KeyManager
填写密码后点击「开始」,稍等片刻,出现以下界面。
第四步,返回浏览器,点击「下一步」,出现以下界面。
第五步,下载文件,并上传至服务器指定目录下。
第六步,点击「验证」,经过后,出现如下界面。
第七步,点击「保存到KeyManager」,能够看到证书状态变成了已颁发。
第一步,导出证书。假如服务器选择的 Tomcat,须要导出 Java keystone (简拼为 jks)格式的证书。
注意:私钥的密码在配置 Tomcat 的时候用到。
第二步,上传证书至服务器。
第三步,配置 Tomcat 的 server.xml。
<Connector port="81" protocol="HTTP/1.1" maxThreads="250" maxHttpHeaderSize="8192" acceptCount="100" connectionTimeout="60000" keepAliveTimeout="200000" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,application/xml,application/json,text/javascript,application/javascript,text/css,text/plain,text/json,image/png,image/gif"/> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="/home/backup/qingmiaokeji.cn.jks" keystorePass="Chenmo" clientAuth="false" sslProtocol="TLS" useBodyEncodingForURI="true" URIEncoding="UTF-8" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,application/xml,application/json,text/javascript,application/javascript,text/css,text/plain,text/json,image/png,image/gif" />
其中 keystorePass 为导出证书时私钥的加密密码。
第四步,重启 Tomcat,并在浏览器地址栏中输入 https://itwanger.cn/
进行测试。
注意到没,浏览器地址栏前面有一个绿色的安全锁,这说明 HTTPS 配置成功了!好了,为本身鼓个掌!
你有没有买个五分钟的时间沙漏?若是超过五分钟 HTTPS 尚未配置成功,你过来揍我!
微信搜索「沉默王二」公众号,关注后回复「免费视频」获取 500G 高质量教学视频(已分门别类)。