JAVA HTTPS服务
分自签证书和CA证书两种方式。
一、制作一张自签证书(jks格式)
1 | #keytool -genkey -keysize 2048 -validity 3650 -keyalg RSA -dname "CN=myyiba.com" -keypass 123456 -storepass 123456 -keystore myyiba.jks |
keytool为JDK提供的生成证书工具
- -keysize 2048 密钥长度2048位(这个长度的密钥目前可认为无法被暴力破解)
- -validity 3650 证书有效期3650天
- -keyalg RSA 使用RSA非对称加密算法
- -dname “CN=myyiba.com” 设置Common Name为myyiba.com,这是我的域名
- -keypass 123456 密钥的访问密码为123456
- -storepass 123456 密钥库的访问密码为123456(其实这两个密码也可以设置一样,通常都设置一样,方便记)
- -keystore myyiba.jks 指定生成的密钥库文件为 myyiba .jks
完了之后就拿到了myyiba.jks这个密钥库文件了,把它放到自己的项目目录下,比如:/usr/local/server/project/resource/myyiba.jks
1 | 项目示例:github下HttpServerInitializer |
在程序初始化的时候生成SSLContext
1 | keyStore ks = KeyStore.getInstance("JKS"); |
这个过程在整个程序周期只需要做一次,最好try-catch一下,以便检查异常,好了之后保存好sslContext,后面用到。
在ChannelInitializer的initChannel中
1 | @Override |
二、CA证书
例如微信小程序的服务器,需要CA证书的HTTPS服务,阿里云提供免费的SSL证书,申请证书后,下载tomcat版。解压有后两个文件:xxx.pfx和pfx-password.txt。
pfx文件类似上面的自签证书xxx.jks文件。加载证书的密码在
pfx-password.txt文件中。
同上面自签证书一样的方式加载CA证书SSL。项目地址见同一个GitHub项目。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 张嘎!
评论
GitalkValine