我试图设置 Cisco VPN 并遇到了一些问题,在尝试更正这些问题的过程中,我对证书目录进行了一些更改并运行了几个与在我的计算机上设置/修改 ssl 证书有关的命令,那是几个月前的事了,所以我记不清我具体运行了什么,但我知道我做的几件事是我从源代码构建了 openssl 并以这种方式安装它,我软链接了几个文件夹并将一些证书从一个文件夹移动到另一个文件夹。我仍然可以使用 https 访问网站,但有一些东西不再适用于 ssl,例如:wget 现在无论 url 如何都会返回以下内容:
--2022-08-25 22:46:09-- https://ubuntuforums.org/Resolving ubuntuforums.org (ubuntuforums.org)... 185.125.188.16, 185.125.188.17
Connecting to ubuntuforums.org (ubuntuforums.org)|185.125.188.16|:443... connected.
ERROR: cannot verify ubuntuforums.org's certificate, issued by ‘CN=R3,O=Let's Encrypt,C=US’:
Unable to locally verify the issuer's authority.
To connect to ubuntuforums.org insecurely, use `--no-check-certificate'.
当我使用 gyazo 时,它现在返回一个错误:
Traceback (most recent call last): 5: from /usr/bin/gyazo:116:in `<main>'
4: from /usr/lib/ruby/2.7.0/net/http.rb:932:in `start'
3: from /usr/lib/ruby/2.7.0/net/http.rb:943:in `do_start'
2: from /usr/lib/ruby/2.7.0/net/http.rb:1009:in `connect'
1: from /usr/lib/ruby/2.7.0/net/protocol.rb:44:in `ssl_socket_connect'
/usr/lib/ruby/2.7.0/net/protocol.rb:44:in `connect_nonblock': SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate) (OpenSSL::SSL::SSLError)
我正在进行的一个项目有用于 UI 和 API 的单独服务器,现在已停止两者之间的通信,并出现 openssl 错误“UntrustedRoot”,我尝试过:
- 重新安装 ca 证书
sudo apt-get install --reinstall ca-certificates
我尝试了sudo dpkg --purge --force-depends ca-certificates
,sudo apt-get -f install
然后sudo update-ca-certificates
尝试更改我的 openssl 的默认版本,我想找到一种方法将这一切恢复为默认状态,而不必重新安装我的操作系统,因为这里有很多配置需要再次输入。
答案1
这就是数据包管理器存在的原因,您不应该通过其他方式安装软件来干扰它们的运行。
由于我们无法知道您做了什么,因此我们无法告诉您如何撤消它。
恢复更改的最佳方法是使用 shell 的历史记录。使用它来查找安装自建 OpenSSL 时发出的命令,然后找出如何执行相反的操作。
恢复稳定系统的最佳选择是重新安装,然后避免手动安装软件。
答案2
默认(存储库)受信任的证书位于/etc/ssl/certs/
。如果您从源代码编译 openssl,它会在 中查找它们/usr/local/ssl/certs/
,但目录为空。
解决方案:
sudo rmdir /usr/local/ssl/certs
sudo ln -s /etc/ssl/certs /usr/local/ssl/certs
噗!问题解决了!