现在都流行 https,今天晚上花了二个小时,学习了一下,这里做个学习总结:

因为刚开始接触,就使用免费的:Let's Encrypt

Let's Encrypt证书特点:

1. 现在主流的浏览器(chrome, firefox, ie)都支持 Let's Encrypt 证书。

2. 申请ssl证书简单快捷,用户名都不需要注册就能获取。

3. 免费证书有效期: 3 个月,到期后需要重新获取证书,重新安装。

我是根据 http://www.itbulu.com/ssl-for-free.html 提供的信息来操作的:

从 https://www.sslforfree.com 获取免费ssl证书。

只需简单的上传一个文件,验证一下网站的所有者就可以了。

注意:下载的文件存放在 /.well-known/acme-challenge/   由于文件夹[.well-known]中含有一个小数点,所以在iis中需要配置一下MIME类型,否则上传的验证文件无法访问。

获取到的证书文件有3个:

ca_bundle.crt

certificate.crt

private.key

由于我是在 iis 上使用,iis 安装ssl证书需要的是一个 .pfx 文件。这需要使用 openssl.exe 生成一个 .pfx 文件。

好在我电脑上原来有一个自已编译的 openssl.exe,刚好能用上。

根据 www.sslforfree.com 的提示,执行下列命令生成 certificate_combined.pfx:

openssl pkcs12 -export -out "certificate_combined.pfx" -inkey "private.key" -in "certificate.crt" -certfile ca_bundle.crt

输入一个密码,然后再重复输入一次密码,就 生成 certificate_combined.pfx 文件了。

然后在iis上,在一个站点上点右键,查看【属性,配置服务器证书,选择【从 .pfx 文件导入证书】。

这样就完成了 http -> https 的升级。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

将 cert 和 key 文件转换成java使用的 jks(keystore)文件的方法:


1. 生成 PKCS#12 文件

openssl pkcs12 -export -in "certificate.crt" -inkey "private.key" -certfile "ca_bundle.crt" -out "qlz.p12" -name "qlz"

验证文件(测试用,这一步不重要): keytool -rfc -list -keystore qlz.p12 -storetype pkcs12

2. 生成 jks 文件 (参考: https://stackoverflow.com/questions/11952274/how-can-i-create-keystore-from-an-existing-certificate-abc-crt-and-abc-key-fil)

keytool -importkeystore -srckeystore qlz.p12 -srcstoretype PKCS12 -destkeystore qlz.jks -deststoretype JKS

完工,生成的 qlz.jks 就可以供 java 直接使用。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

需要注意的地方:

1. 如果有多个站点,其中一个开启了https,就会占用 443 端口。另一个站点如果同时想开启https,就会提示失败,因为无法开启443端口了。

查了一下相关资料,说是 iiis 6,因为使用ssl,无法读取请求的主机头(host),所以只能读取配置的第一个ssl证书,如果有多个ssl证书,就无法正确与host相匹配了。 好像说 iis8开启一个功能*SNI (Server Name Indication),就能解决这个问题。

2. 每隔3个月,证书到期一次,需要重复操作一次,更新证书。

Let's Encrypt:初次使用免费的ssl证书,并生成java用的 jks(keystore) 文件的更多相关文章

  1. 申请免费的SSL证书(Win7,PowerShell,Let's Encrypt)

    随着网络安全形势的发展,SSL已是各大网站的标配,启用SSL的好处自然不必多说,然后每份SSL证书也要花费不菲的银子,按最便宜的DV证书来看,每年也要个四五百呢. 有趋势有需求,自然也有免费可用.免费 ...

  2. Let's Encrypt 免费通配符 SSL 证书申请教程——但是也需要email,域名所有权等,如果是黑产用的话会这样用吗?会不会暴露自己身份???

    Let's Encrypt 免费通配符 SSL 证书申请教程 from:https://blog.csdn.net/English0523/article/details/79608464 2018 ...

  3. 使用Let's Encrypt 生成免费的ssl证书的详细过程

    参考连接:https://github.com/diafygi/acme-tiny 中文:https://hacpai.com/article/1487899289204 目前我了解可以生成免费证书的 ...

  4. 转载免费的SSL证书

    目前我知道的有2种方式进行免费的SSL证书的获取 第一种:腾讯云申请 第二种:Let's Encrypt (国外在) 我一直使用第一种,还可以,有效期1年. 以下转载第二种: 实战申请Let's En ...

  5. 使用acme.sh自动申请、续期、部署免费的SSL证书

    参考文档:https://github.com/acmesh-official/acme.sh 一个使用纯shell操作的免费SSL证书申请部署工具. 免费的SSL证书由以下CA机构提供: ZeroS ...

  6. 【原创】免费申请SSL证书【用于HTTPS,即是把网站从HTTP改为HTTPS,加密传输数据,保护敏感数据】

    今天公司有个网站需要改用https访问,所以就用到SSL证书.由于沃通(以前我是在这里申请的)暂停了免费的SSL证书之后,其网站推荐了新的一个网站来申请证书,所以,今天因为刚好又要申请一个证书,所以, ...

  7. startssl,免费的ssl证书申请及注意事项

    免费的ssl证书,https://www.startssl.com/ 安装到IIS和Nginx有所不同.原文 http://blog.newnaw.com/?p=1232 ------------转自 ...

  8. 阿里云免费购买SSL证书,nginx无缝升级https

    最近在升级交流学习社区,觉得有必要升级成https.以下是自己在升级中记录. 以下包括以下部分: 一.阿里云免费购买SSL证书 1.自己在阿里云申请了免费的,然后自己支付0元,购买了SSL证书 2.我 ...

  9. 免费的SSL证书(LINUX)

    贫穷限制了我的SSL. 说起来也简单,免费的SSL证书授权机构,我使用的是Certbot 选择服务器开启的服务,像我php之流,无非apache和nginx,然后选择使用的服务器类型.嗯,补充一句,这 ...

随机推荐

  1. js发布订阅模式实现

    //可以用于无相关页面或组件的事件.数据传递,减少在onShow中的业务,降低代码耦合 let events = {} /**订阅**/ function on(name, self, callbac ...

  2. python之路--MySQL权限管理 数据备份还原

    一 权限管理 mysql最高管理者是root用户, 这个一般掌握在公司DBA手里, 当你想去对数据库进行一些操作的时候,需要DBA授权给你. 1. 对新用户增删改 1. 创建用户 # 要先use my ...

  3. django restframework PrimaryKeyRelatedField筛选的困惑

    一.在开发某运动app时,遇见以下情况 1.部分表内容如下: class Sports(models.Model): ''' 运动表 ''' school = models.ForeignKey(Sc ...

  4. linux中的set -e 与set -o pipefail

    1.set -e "Exit immediately if a simple command exits with a non-zero status." 在“set -e”之后出 ...

  5. 五、compose 部署 GitLab 应用

    1.我们部署的是sameersbn/docker-gitlab这个镜像. docker pull sameersbn/gitlab 2.配置文件,我们不需要去run它,只需要先下载一个compose的 ...

  6. vue中组件绑定事件时是否加.native

    组件绑定事件时 1. 普通组件绑定事件不能添加.native, 添加后事件失效 2. 自定义组件绑定事件需要添加.native, 否则事件无效 <template> <!-- < ...

  7. js中对URL进行转码与解码

    1. escape 和 unescape escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值. 采用unicode字符集对指定的字符串除0-255以外进行编码.所 ...

  8. github上传时出现error: src refspec master does not match any解决办法22

    1 error:src refspec master does not match any这个问题,我之前也遇到过,这次又遇到了只是时间间隔比较长了,为了防止以后再遇到类似问题,还是把这个方法简单记录 ...

  9. Centos使用虚拟环境创建python django工程

    本地环境 通常我们登录就是后就是本地环境 本地环境下查看pip安装了那些包 pip3 list 可以看到本地环境下我们安装的是django1.11.16版本,现在我有个项目要使用django 2.0以 ...

  10. HDU3507-Print Article-斜率dp入门题

    为了学CDQ分治,从斜率dp和凸包开始做吧.. 代码就是维护一个凸包.利用递增的性质丢掉不合适的点. http://www.cnblogs.com/Rlemon/p/3184899.html 代码学的 ...