离线SSL
要实现完全离线的 HTTPS,需要获得一个自签名的 SSL/TLS 证书。自签名证书是由自己创建的,而不是由受信任的证书颁发机构 (CA) 签名的。它们不能被大多数 Web 浏览器自动信任,而是需要手动安装到每个访问网站的计算机或设备上。
生成SSL
生成私钥文件和证书签名
openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
其中domain.key
是生成的私钥文件名,domain.csr
是生成的 CSR 文件名。在执行该命令时,您需要输入一些信息,例如国家、省份、城市、组织名称、通用名称等。您可以根据自己的需求进行调整,但必须至少提供通用名称,这应该是您的域名或 IP 地址。
生成自签名证书
openssl x509 -req -days 365 -in domain.csr -signkey domain.key -out domain.crt
其中 domain.crt
是生成的自签名证书文件名。该命令将使用私钥文件和 CSR 文件签名证书,证书将有效期为 365
天。
部署SSL
本文不提供详细步骤,下面是一些参考
在debian10系统上通过apache部署HTTPS网站,实现https部署测试工具Dvwa
安装SSL
Windows
- 双击证书文件(.crt 或 .pem 格式),打开证书安装向导。
- 选择 “当前用户” 或 “本地计算机” 中的一个,然后单击 “下一步”。
- 选择 “将所有的证书都放入下列存储”,然后单击 “浏览”。
- 选择 “受信任的根证书颁发机构” 存储,然后单击 “确定”。
- 单击 “下一步”,然后单击 “完成” 完成证书安装过程。
macOS
- 双击证书文件(.crt 或 .pem 格式),打开钥匙串访问应用程序。
- 将证书文件拖到钥匙串访问中。
- 双击证书,打开证书详细信息。
- 展开 “信任” 部分,将 “使用该证书时” 设置为 “始终信任”。
- 关闭证书详细信息窗口,系统会提示你输入管理员密码以保存更改。
Linux
Linux类型的系统中,还需要区分不同的子类型
Ubuntu/Debian 类
使用以下命令将证书复制到系统级证书存储库中
sudo cp domain.crt /usr/local/share/ca-certificates/
然后更新存储库
sudo update-ca-certificates
现在,已经成功地在 Ubuntu 或 Debian 上安装了自签名 SSL/TLS 证书。
CentOS 或 Fedora类
使用以下命令将证书复制到系统级证书存储库中
sudo cp domain.crt /etc/pki/ca-trust/source/anchors/
然后更新存储库
sudo update-ca-trust extract
现在,已经成功地在CentOS 或 Fedora上安装了自签名 SSL/TLS 证书。