OpenSSL证书(实现本地https)
OpenSSL
1.下载openssl
地址:https://slproweb.com/products/Win32OpenSSL.html
选择自己对应的系统版本下载(因为我是win 所以用win的演示)
下载路径自己看着来
2.设置环境变量
此电脑->(右击)属性->高级系统设置->环境变量
填入刚刚自己的下载路径
记得点确定
记得点确定
记得点确定
3.判断环境变量是否配置完成
按 win+R
打开控制台输入cmd
打开命令提示符
若显示版本则表示环境变量配置成功了
4.生成证书
1.生成私钥文件
1 | openssl genrsa -des3 -out privkey.pem 2048 |
这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码
如果你不想要每次都输入密码,可以改成:
1 | openssl genrsa -out privkey.pem 2048 |
生成的私钥文件名:privkey.pem
2.生成证书文件
1 | openssl req -new -key privkey.pem -out cert.csr |
这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。
如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
1 | openssl req -new -x509 -key privkey.pem -out cacert.pem -days 3650 |
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem,有效期为3650天
3.生成公钥文件
1 | openssl rsa -in privkey.pem -inform pem -pubout -out pubkey.pem |
生成的公钥文件pubkey.pem
4.查看密钥信息
1 | openssl rsa -noout -text -in privkey.pem |
5.拓展(可以不用在意)
【证书打包成 PKCS#12 格式】
1 | openssl pkcs12 -export -in cacert.pem -inkey privkey.pem -out starless.p12 -name starless-test |
5.本地计算机配置域名
打开hosts文件:在Windows系统中,hosts文件通常位于C:\Windows\System32\drivers\etc
在Mac和Linux系统中,hosts文件位于/etc/hosts。
添加域名映射:在hosts文件中添加一行,格式为<IP地址> <域名>。例如,要将localhost映射到myproject.local,可以添加127.0.0.1 myproject.local。
例如(修改hosts文件,用记事本打开即可,记得保存)
当访问starless.test 等于访问本地127.0.0.1
6.测试
后端测试项目文件下载地址
https://github.com/findnamed/OpenSSLTest
启动后端项目
打开浏览器访问
显示访问成功
7.为什么显示不安全
因为是本地的证书,浏览器并不认可(但现在就可以用https来本地开发调试了)