本文为博主原创 转载请注明出处 尊重一下笔者的劳动成果 十分感谢
前言
因为最近一个项目卡在了https的证书上,与合作方沟通几天仍没有解决,故而大boss让研究一下,但是本人对https配置这证书完全没有接触过,知之甚少,接到这个任务其实是一头蒙的,但是大boss扔过来一个博客链接 让我参考 配置一下https 不得不从啊 所以先按照配置来哇
正文
最开始看小程序的文档 ios不支持自签名证书,啥是自签名证书啊?我对证书的理解就是花钱买
先说一下所谓自签名证书 就是自己给自己颁发的证书,不是权威机构颁发的 在浏览器打开的时候会提示你不安全的链接 如果是自己测试或者简单的应用还是可以自己弄的 如果是要用在微信或者其他正式对数据比较敏感的场合 建议还是去购买权威机构的证书 最差也可以云服务的免费证书 附 阿里云获取免费SSL证书 附开启阿里云端口图文详解
开始配置自签名证书
登录你的服务器 利用jdk自带的keytool为服务器生成证书
第一步 进入jdk安装的目录 不需要进入bin目录 shift+鼠标右键 在此处打开命令窗口
第二步 生成证书 在命令窗口执行如下命令回车
keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.keystore -validity 36500
注意:此处的你的名字与姓氏不能乱写 要写你服务器的ip或者域名 密钥库的密码至少必须6个字符
按回车 可以看到打印的信息 这个时候找到你的jdk目录 可以看到生成的证书了
其中 -genkey 是生成证书 -alias tomcat 是别名 -keyalg RSA 加密方式 tomcat.keystore 是要生成的证书名称 -validity 36500 表示的是有效期 36500天=100年 其他参数说明可以在cmd中输入keytool查看 如:
第三步 为客户端生成证书 文件为p12类型的证书
keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore client.p12 -validity 36500
第四步 让服务器信任客户端证书 先转换客户端证书格式 转为cer文件并导出证书
keytool -export -alias client -keystore client.p12 -storetype PKCS12 -rfc -file client.cer
第五步 信任证书 将client.cer导入到tomcat的信任证书链中 把tomcat证书导出为tomcat.cer文件(导出根证书)
keytool -import -alias client-v -file client.cer -keystore tomcat.keystore
keytool -export -v -alias tomcat -file tomcat.cer -keystore tomcat.keystore
第六步 以tomcat为例 配置https
找到在tomcat 安装目录 - conf -server.xml 文件 找到被注释掉的8443 去掉注释 补充参数:
clientAuth="false" sslProtocol="TLS"
keystoreFile="证书路径"
keystorePass="证书密码"
注意 http默认端口为80 https默认端口为443 如果修改https端口下面的图文说明
下图为被注释的https的配置:
下图为https的配置:
如果配置好https不能访问 将https的配置 protocol="HTTP/1.1" 改为 protocol="org.apache.coyote.http11.Http11Protocol"
如果是使用的阿里云的服务器 要检查一下配置的端口是否开启 如果没有开启也是访问不到的哦