我如何*正确*修复raspberty pi上的SSL证书?

时间:2017-08-13 11:30:49

标签: ssl raspberry-pi debian

我试图通过HTTPS获取内容,但是我收到了SSL错误。我刚才(2017-08-13 13:20)运行以下内容:

sudo aptitude update
sudo aptitude upgrade
wget https://bootstrap.pypa.io/get-pip.py  # <-- This resulted in the error shown below
sudo aptitude reinstall ca-certificates
wget https://bootstrap.pypa.io/get-pip.py  # <-- This resulted in the same error

在桌面浏览器上查看https://bootstrap.pypa.io看起来不错。我检查了SSL证书,看起来还不错。作为快速检查:浏览器告诉我它&#34;安全&#34;。

在我更新ca-certificates套餐后,我不知道还有什么问题可以解决。

错误:

--2017-04-10 12:34:25--  https://bootstrap.pypa.io/get-pip.py
Resolving bootstrap.pypa.io (bootstrap.pypa.io)... 151.101.36.175
Connecting to bootstrap.pypa.io (bootstrap.pypa.io)|151.101.36.175|:443... 
connected.
ERROR: The certificate of ‘bootstrap.pypa.io’ is not trusted.
ERROR: The certificate of ‘bootstrap.pypa.io’ is not yet activated.
The certificate has not yet been activated

lsb_release -a的输出:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:        8.0
Codename:       jessie

1 个答案:

答案 0 :(得分:1)

wget --no-check-certificates存在,但正如您所说,您希望找到根本问题。这是正确的,因为证书问题实际上并不是什么问题,即使它们只是良性的。

您提到您已尝试重新安装ca-certificates,并且应安装ssl-cert或不需要安装curl。这留下了两个我能想到的问题:日期,或者你有一些奇怪的配置,以某种方式改变它如何处理证书日期。也就是说,ERROR: The certificate of ‘bootstrap.pypa.io’ is not trusted. ERROR: The certificate of ‘bootstrap.pypa.io’ is not yet activated. The certificate has not yet been activated 给出相同错误的事实意味着它将是一个系统配置,我想不出任何可能导致该类别的错误。

此输出,但是:

date

放弃它。我希望它不是这个,而是某种深奥的配置选项,但有些事情很容易被忽视 - 并且尝试了其他一切,我又回到怀疑的时间。知道证书必须在日期范围内才能被视为“活动”,而错误表明它未被激活将意味着它超出该范围。这通常意味着您正在运行的设备的时钟不正确,或者证书尚未生效(或已过期,但时态不具有该含义 - 即无效)。

访问该网站时,我发现您的证书有效,但也只有3-4天,这对于许多此类问题来说是一个足够小的错误。如果你等了一些额外的时间,问题最终会自行解决(只要证书在操作系统认为有效之前没有到期)。

尝试运行hwclockdate --set以确保您的时钟正确无误。如果没有,请使用ntpdate ntp.ubuntu.comntpd -gqntpd进行更新。

我在设置pis时遇到了类似的问题(如果我记得的话,其中一个已关闭了一年)。我不确定是什么原因造成这种情况如此严重,而不是其他人。

我对ntpd -gq并不了解,但请检查远程主机上的设置。如果它的时间也是错误的,或者它的上游没有设置,那么这也可能导致问题。我认为如果服务正在运行,ntp也会遇到ntpdate ntp.ubuntu.com的问题,所以请先尝试停止它。如果没有别的,请尝试hwclock --set从Canonical的公共ntp服务器获取时间。还有hwclock --adjusttest5 <- read.table(text=' 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.1 1 2 8 2 0 0 0 0 0.2 2 4 16 4 2 0 0 0 0.3 4 16 32 16 4 2 0 0 0.4 2 4 16 4 2 0 0 0 0.5 0 0 0 0 0 0 0 0 0.6 0 0 0 0 0 0 0 0 0.7 0 0 0 0 0 0 0 0 0.8 0 0 0 0 0 0 0 0 ', header=T) test5 <- as.matrix(test5) library(rgl) persp3d(x=seq(0.1,0.8,0.1), y=seq(0.1,0.8,0.1), xlab="x", ylab="y", zlab="z", z=test5, color=terrain.colors(32))

我也看到提到如果操作系统时间与上游时间之间的差异太大,ntp实际上不会更新日期......虽然我不确定这有什么用途,除非你是故意的将日期设置为过去或将来(具有一些有效用途的用例,例如强制使服务的所有用户会话到期)。尝试手动将其设置为实际时间的几分钟或几秒,然后再次尝试更新。