root@sclrdev:/home/sclr/certs/FreshCerts# curl --ftp-ssl --verbose ftp://{abc}/ -u trup:trup --cacert /etc/ssl/certs/ca-certificates.crt
* About to connect() to {abc} port 21 (#0)
* Trying {abc}...
* Connected to {abc} ({abc}) port 21 (#0)
< 220-Cerberus FTP Server - Home Edition
< 220-This is the UNLICENSED Home Edition and may be used for home, personal use only
< 220-Welcome to Cerberus FTP Server
< 220 Created by Cerberus, LLC
> AUTH SSL
< 234 Authentication method accepted
* successfully set certificate verify locations:
* CAfile: …Run Code Online (Sandbox Code Playgroud) 我有一个由 Sectigo(前 Comodo Positive SSL 产品)颁发的证书。它状况良好,有效期为 1 年零 7 个月。此证书由Sectigo RSA 域验证安全服务器CA 颁发。CA 链中有两个中间证书,由供应商提供:最近的 Sectigo RSA 域验证安全服务器 CA 和下一个中间的 USERTrust RSA 证书颁发机构,将于 2020 年 5 月 30 日到期。
中级 USERTrust RSA 证书颁发机构的到期日期非常接近,并由受信任的浏览器 AddTrust 外部 CA Root 签名。
同时,最接近我的域证书中间 Sectigo RSA 域验证安全服务器 CA 由另一个具有相同名称的根签名 USERTrust RSA 证书颁发机构,但这与之前提到的 CA 证书不同。并且这个根被普通浏览器信任。
我尝试通过 ssllabs.com 的检查器检查它,我发现今天一切正常。但我不明白未来。如果我在链中留下过期的中间件,5 月 30 日之后会发生什么?或者最好事先从链中排除这个中间体?
我需要在公司代理后面进行卷曲上传。根据我尝试的网站,我遇到了以下两种类型的问题,
详细信息如下:
情况1:
. . .
< HTTP/1.1 200 Connection established
< Proxy-agent: CCProxy
<
* Proxy replied 200 to CONNECT request
* CONNECT phase completed!
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CONNECT phase completed!
* CONNECT phase completed!
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number
* Closing connection 0
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version …Run Code Online (Sandbox Code Playgroud) 我有一个每天在 Ubuntu 14.04 服务器上运行的脚本。该脚本是一个简单的 wget 命令,它从远程服务器下载文件并将其保存到本地文件系统:
wget https://example.com/resources/scripts/myfile.php -O myfile.php
Run Code Online (Sandbox Code Playgroud)
几个月来它一直运行良好,直到今天早上当我运行它时突然出现:
--2020-05-30 11:57:16-- https://example.com/resources/scripts/myfile.php
Resolving example.com (example.com)... xx.xx.xx.xx
Connecting to example.com (example.com)|xx.xx.xx.xx|:443... connected.
ERROR: cannot verify example.com's certificate, issued by ‘/C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA’:
Issued certificate has expired.
To connect to example.com insecurely, use `--no-check-certificate'.
Run Code Online (Sandbox Code Playgroud)
该域的 SSL 有效并于 2022 年 1 月到期。这方面没有任何变化。然而不知何故 wget 不再看到这一点。
这是另一个有趣的事实。如果我在 Ubuntu 18 机器上运行这个完全相同的命令,它就像一个魅力,没有任何抱怨。这告诉我我的 Ubuntu 14.04 机器有问题。
Curl 产生相同的错误:
curl https://example.com
curl: (60) SSL certificate problem: certificate has expired
Run Code Online (Sandbox Code Playgroud)
这篇文章表明证书包已过期。我已经下载了建议的 …
在我的 Node.js 代码中,我使用库请求站点request:
const httpReq = require("request")
function postJSON(uri, data, headers) {
if (uri.slice(-1) != "/") {
uri += "/"
}
console.log(`[postJSON] uri: ${uri}`)
console.log(`[postJSON] body: ${JSON.stringify(data, null, 2)}`)
console.log("[postJSON] headers", JSON.stringify(headers, null, 2))
return new Promise((resolve, reject) => {
httpReq(
{
method: "POST",
uri: uri + Math.floor(Math.random() * 100000000).toString(),
headers: headers,
json: data
}, function (err, resp, body) {
console.log(`[postJSON] done with error: ${err} -> ${uri}`)
if (err) {
reject(err)
}
else {
resolve(body)
}
}
) …Run Code Online (Sandbox Code Playgroud)