GOlang SSL错误:PHP everyhting中的错误证书/
我正在使用项目的进入,我正在尝试使用certificate.pem访问第三方API测试服务 Bag Attributes friendlyName: anobii localKeyID: BC B5 C1 04 51 33 1A BF 73 84 F4 A6 6B 56 22 FC 35 E6 46 CE Key Attributes: -----BEGIN PRIVATE KEY----- blablablalba -----END PRIVATE KEY----- Bag Attributes friendlyName: anobii localKeyID: BC B5 C1 04 51 33 1A BF 73 84 F4 A6 6B 56 22 FC 35 E6 46 CE subject=/CN=anobii issuer=/CN=anobii -----BEGIN CERTIFICATE----- MIIC5zCCAc+gAwIBAgIJAOw7fdq2T3DeMA0GCSqGSIb3DQEBDAUAMBExDzANBgNV BAMTBmFub2JpaTAeFw0xNDA3MTcxMDI1MjVaFw0xOTA3MTYxMDI1MjVaMBExDzAN BgNVBAMTBmFub2JpaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKNL 7F6G99qi1i94QzEIotsEV9ppD4JrzWcyGZinsUyShhR4EBr7avgXnfZop2YBqR7m brj15FmDXlBGJf01pPC+bQOGYV4AkWADfQujDbjQnYgvvjSSl9qym+sUhVIFQ3Rl XfUeKxePB/OvZAh+aAR5BCa19ry/b4nq6VOzx6Lzvmz/uDprn6CXdJ+ow8ORcQC5 iAOJVljHJfUwBSRliywIJ3WyCs+U1CW/aaxGQ9SKlFMOALhznzXy59rKPjhtBfVY zFKnzNZHatV3/dAgZNZe85ZftcobEHSSqi2jG3SuapIqwYlg4Vlaf3McoupX9+20 zlYt0KInjCO1P+9bKRkCAwEAAaNCMEAwHQYDVR0OBBYEFLy1wQRRMxq/c4T0pmtW Ivw15kbOMB8GA1UdIwQYMBaAFLy1wQRRMxq/c4T0pmtWIvw15kbOMA0GCSqGSIb3 DQEBDAUAA4IBAQCRueNuYLnxkwm+zl05a96PTCVCPzP4kZEAN7pwl/ruf0njLQVo ulCPN5dWxfgO95f7vcMQp2feFK+bmf8jBK1j5hCMUTvEiMy8k78rLw8vqf2rlAhR 61gYq3jgdSB2FCauJd9a1Cca2XUS/apHFDjLv8yBti1Y5xFv8E02S/oKbcLjpnYS ZKdJw1CZBj4zOmjNG2/vom8G1/IUsNm0r7J1URyrrUR0TDWmgecGXFU8F4kjc2lh OXWEdReDrJ0KDh+IJW3RZ/SjBP8GWygoFr2uUjsxCbdAyxcyEVIQ1VDUU0naXJbH i8ta8Bu9XNkAVj7ip9lZjKtV5xlcnXhwi/Dd -----END CERTIFICATE----- 行李属性 友人姓名:anobii localKeyID:BC B5 C1 04 51 33 1A BF 73 84 F4 A6 6B 56 22 FC 35 E6 46 CE 关键属性: -----开始私钥----- 布拉尔巴 -----结束私钥----- 行李属性 友人姓名:anobii localKeyID:BC B5 C1 04 51 33 1A BF 73 84 F4 A6 6B 56 22 FC 35 E6 46 CE subject=/CN=anobii 发卡机构=/CN=anobii -----开始证书----- MIIC5zCCAc+GAWIBAGIJAOW7FDQ2T30GCSQGSIB3DQEBDAUMBEXDZANBGNV BAMTMFUB2JPATAEFW0xNDA3MTCxMDI1MJVAFW0xOTA3MTYxMDI1MJVAMBEXDZAN bgnvbamtbmfub2jpatccasiwdqyjkozihvcnaqebqadggepadcaqocggebaknl 7F6G99qi1i94QzEIotsEV9ppD4JrzWcyGZinsUyShhR4EBr7avgXnfZop2YBqR7m brj15FmDXlBGJf01pPC+bQOGYV4AkWADfQujDbjQnYgvvjSSl9qym+sUhVIFQ3Rl XfUeKxePB/OvZAh+aAR5BCa19ry/b4nq6VOzx6Lzvmz/uDprn6CXdJ+ow8ORcQC5 iAOJVljHJfUwBSRliywIJ3WyCs+U1CW/AAXGQ9SKLFMOALHZXY59RKPJHTBFY zFKnzNZHatV3/DAGZNZE85ZFTCOBEHSQI2JG3SUAPIQWYLG4Vlaf3MCOUPX9+20 ZLYT0KINCO1P+9BKRKCAWEAANCMEAWQYDVR0OBBYEFLY1WQRRMXQ/c4T0pmtW Ivw15kbOMB8GA1UdIwQYMBaAFLy1wQRRMxq/c4T0pmtWIvw15kbOMA0GCSqGSIb3 DQEBDAUAA4IBAQRUENUYLNXKWM+zl05a96PTCVCPzP4kZEAN7pwl/ruf0njLQVo ulCPN5dWxfgO95f7vcMQp2feFK+bmf8jBK1j5hCMUTvEiMy8k78rLw8vqf2rlAhR 61gYq3jgdSB2FCauJd9a1Cca2XUS/apHFDjLv8yBti1Y5xFv8E02S/oKbcLjpnYS ZKDJW1CZBJN4ZOMJNG2/vom8G1/IUSNM0R7J1URYRRURR0TDWMGECGXFu8F4KJC2LH OxwedreRJ0KDH+IJW3RZ/SJBP8GWYGOFR2UUJSXCBDAYXYEVIQ1VDU0NAXJBH I8TA8BU9XNKAVJ7IP9LZJKTV5XLCNHWI/Dd -----结束证书----- 这是我的golang代码。运行时,我看到:连接失败:远程错误:证书错误 证书:=x509.NewCertPool() pemData,err:=ioutil.ReadFile(“configuration/keys/certificate.pem”) 如果出错!=零{ log.Fatalf(“未能准备证书-%s”,错误) } 证书附录CertsFromPEM(pemData) mTLSConfig:=&tls.Config{ RootCAs:certs, 不安全感验证:正确, } tr:=&http.Transport{TLSClientConfig:mTLSConfig} conn,err:=tls.Dial(“tcp”,“server.com:443”,mTLSConfig) 如果出错!=零{ 死机(“连接失败:+err.Error()) } 康涅狄格州关闭 我有点迷路了,尝试使用PHP,那里的一切似乎都正常。我可以连接并提出请求:/ 需要一次'config.php'; $code=$argv[1]; echo“\n\n设置完全访问令牌。使用代码发送请求…\n\n”; $curl=curl_init(); curl_setopt($curl,CURLOPT_VERBOSE,true); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); curl_setopt($curl,CURLOPT_SSLCERT,$config['ssl_客户端证书]); curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($curl,CURLOPT_URL,'https://'。$config['base_URL_certapi'].“/oauth/token”); curl_setopt($curl,CURLOPT_HTTPHEADER[ '主机:'.$config['base\u url\u certapi'], 'Authorization:Basic'.base64_encode($config['client_id'].:'。$config['client_secret']), '内容类型:application/x-www-form-urlencoded', ]); $postFields=[ “授权类型”=>“授权代码”, “代码”=>$code, 'redirect\u uri'=>$config['redirect\u uri'] ]; curl_setopt($curl,CURLOPT_POST,1); curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($POSTFIELDS)); $output=curl\u exec($curl); echo$输出; curl_close($curl); 模具(); 谁能告诉我围棋中我做错了什么?围棋有什么不同,或者我错过了什么GOlang SSL错误:PHP everyhting中的错误证书/,ssl,go,https,Ssl,Go,Https,我正在使用项目的进入,我正在尝试使用certificate.pem访问第三方API测试服务 Bag Attributes friendlyName: anobii localKeyID: BC B5 C1 04 51 33 1A BF 73 84 F4 A6 6B 56 22 FC 35 E6 46 CE Key Attributes: -----BEGIN PRIVATE KEY----- blablablalba -----END PRIVA
亲切问候。您真的只包含了一个私钥吗?哦,它是为测试服务器自行生成的。甚至连一部作品都没有。反正已删除。@cnicutar为什么不包括一个测试私钥,而该私钥不是在本问题的目的之外使用的?如果您打算使用
unsecureskipverify
,为连接设置CA证书有什么意义?有几点:1)您似乎加载的不是CA证书,而是您自己的证书;然后将此证书添加为TLS配置的RootCAs
属性。这不是它的目的。2) 您没有检查AppendCertsFromPEM()
的返回值。您真的只是包含了一个私钥吗?哦,它是为测试服务器自行生成的。甚至连一部作品都没有。反正已删除。@cnicutar为什么不包括一个测试私钥,而该私钥不是在本问题的目的之外使用的?如果您打算使用unsecureskipverify
,为连接设置CA证书有什么意义?有几点:1)您似乎加载的不是CA证书,而是您自己的证书;然后将此证书添加为TLS配置的RootCAs
属性。这不是它的目的。2) 您不检查AppendCertsFromPEM()的返回值。
。
certs := x509.NewCertPool()
pemData, err := ioutil.ReadFile("configuration/keys/certificate.pem")
if err != nil {
log.Fatalf("Failed to prepare cert - %s", err)
}
certs.AppendCertsFromPEM(pemData)
mTLSConfig := &tls.Config{
RootCAs: certs,
InsecureSkipVerify: true,
}
tr := &http.Transport{TLSClientConfig: mTLSConfig}
conn, err := tls.Dial("tcp", "server.com:443", mTLSConfig)
if err != nil {
panic("failed to connect: " + err.Error())
}
conn.Close()
require_once 'config.php';
$code = $argv[1];
echo "\n\nGettings full-access token. Sending request with code...\n\n";
$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSLCERT, $config['ssl_client_cert']);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, 'https://' . $config['base_url_certapi'] . "/oauth/token");
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Host: ' . $config['base_url_certapi'],
'Authorization: Basic ' . base64_encode($config['client_id'] . ':' . $config['client_secret']),
'Content-Type: application/x-www-form-urlencoded',
]);
$postFields = [
'grant_type' => 'authorization_code',
'code' => $code,
'redirect_uri' => $config['redirect_uri']
];
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postFields));
$output = curl_exec($curl);
echo $output;
curl_close($curl);
die();