除了 crisvdb 答案之外,我还有一些信息要添加,并且是演练的延续。我不发表评论,因为评论非常复杂,但在此答案之前先查看 crisvdb 答案,然后返回继续。
- 您可以在任何文件夹中制作您的证书,可以或不能在应用程序的同一文件夹中。
- 将
openssl verify -CAfile localhost.crt localhost.crt 视为非可选步骤,强制执行。这会有所帮助。
- 在执行此操作时不要重新编译或触摸代码,以使第一个场景干净。
- 在某些发行版中,作为 Raspberry Pi 的 Raspbian,CA 证书位于
/etc/ssl/certs 以及 /usr/share/ca-certificates/ 和在某些情况下 /usr/local/share/certificates。
- 不要将证书手动复制到受信任的证书,运行
sudo update-ca-certificates
- 如果您在制作证书时使用密码,您应该在
appsettings.json 中使用它
- 如果您收到此错误:
互操作+加密+OpenSslCryptographicException:错误:2006D002:BIO
例程:BIO_new_file:系统库
考虑到错误意味着“访问被拒绝”。可能是因为您没有权限或相关权限。
7b) 也可能是找不到文件,我在配置中使用了整个路径:
"Path": "/home/user/www/myfolder1/myapp/localhost.pfx",
- 之后,如果一切正常,如果您使用的是 Apache 或 Apache2,您可能会看到 500 错误。
如果您在站点的 apache 日志中收到以下错误:
[ssl:error] [remote ::1:yourport] AH01961: SSL 代理请求
yoursite.com:443 但未启用 [提示:SSLProxyEngine] [代理:错误]
AH00961: HTTPS: 无法为 [::1]:yourport 启用 ssl 支持
(本地主机)
您必须在虚拟主机中在SSLEngine On 之后和ProxyPass 之前设置以下配置
SSLProxyEngine on
- 之后,如果一切正常,如果您使用的是 Apache 或 Apache2,您可能会看到 500 错误。
如果您在站点的 apache 日志中收到以下错误:
[proxy:error] [client x.x.x.x:port] AH00898: SSL 期间出错
与 / 返回的远程服务器握手
[proxy_http:error] [client x.x.x.x:port] AH01097:将请求正文传递到 [::1]:port 失败
(本地主机)来自 x.x.x.x()
您必须在虚拟主机中在SSLProxyEngine on 之后和ProxyPass 之前设置以下配置
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
更新
如果您正在翻新它并使用相同的名称,请注意您应该从 etc/ssl/certs 中删除您的 pem 文件