java 生成证书 并转为 nginx 可用的类型
最近要搭一个 https 的测试环境,使用 nginx 做反向代理。
网上找过不少资料,但过程不是很完整,吃了不少亏,故把自己的操作过程总结下来。如果你刚好遇到这个问题,希望对你有帮助!
*******分割线
使用 java 自带 jdk 生成 ssl 自签名证书(以生成 uat 环境的 ssl 证书为例)
1、打开 cmd 命令窗口,指定使用 RSA 算法生成一个颁发证书的机构,
执行命令:keytool -genkey -alias uat -keypass password -keyalg RSA -keysize 1024 -validity 365 -keystore D:/UAT/KEY/uat.keystore -storepass password
3、因为 keytool 不提供命令导出私钥,所以需要编写 java 类导出 key,测试类如下:
SslKey.java
输出 key 值在控制台 新建一个 uat.key 命名的文件,把内容粘贴到这个文件夹里面:
4、到这一步,已经可以将 cer 证书(若需要 crt 证书,可以直接把 cer 证书文件的后缀改为 crt 即可)配置到 nginx 中使用,但是使用此时的 key 需要每次访问的时候输入一次密码,相当麻烦。所以最好对 key 文件再 ssl 免密码操作一次。步骤如下:
在 windows 上安装 openssl 转换工具:
Win64OpenSSL-1_0_2c.exe
vcredist_x64.exe
然后再将 openss 的 bin 目录配置到系统环境变量里:
执行命令:rsa -in D:\UAT\key\uat.key -out D:\UAT\key\uat.key.unsecure
5. 证书文件拷贝到测试环境,并配置 nginx 的 config 文件(我事先把 uat.cer 文件改名为 uat.crt),重启 nginx 即可实现 https 访问。因为是自签名的证书,所以浏览器访问时需要先手动信任一下。
文件 1 见有道云地址
在上面命令里要用到 openssl 的软件 这个软件安装的时候会提示安装 C++ 2008
先装 opensll 如果提示需要 c++ 再去装第二个
之后最后几步去到 openssl 安装目录下的 bin 文件里 执行指令即可
原文地址 https://www.cnblogs.com/shindo/p/6117647.html
弄这个东西的原因是客户要求让服务支持 https,同事直接发给我的证书过期了
就要生成证书,但是使用 java 生成的证书不能直接使用 所以有了这里的事
jdk 的 keytool 生成的文件 需要转换 关于此工具我会再研究下
!!!文件由于上传限制请点击有道云连接下载
http://note.youdao.com/noteshare?id=497d51fe1b8d0734880bbc172b21feaf&sub=906DEBD275CB4153B4B93C3D79B407F7