Ubuntu 11.10, с помощью wget/curl перестала работать с ssl

S3 не является никакой альтернативой, счет для 80 TByte будет по одному только 8k$ в месяц.

Похоже, что Вы поделом GIFs из файловой системы. Почему Вы не помещаете весь GIFs на 2 машины, используйте хеш-алгоритм, отображающий имя к одной из этих 2 машин, и поставьте им этот путь? Это легко масштабировалось бы к большему количеству машин, пока Ваш loadbalancer держит …

5
задан 28 March 2012 в 11:24
2 ответа

Получается, что установка пакета ca-сертификатов не установила тот, который мне был нужен. Я нашел этот пост о выдаче сертификатов не по порядку. Похоже, именно так и произошло с моим запросом на sagepay.

Решением стала установка другого сертификата CA от Verisign. Я не уверен, почему это решает проблему с выходом из строя, но это так, но я подозреваю, что проблема с выходом из строя на самом деле вовсе не проблема, и это было действительно так, потому что мне все время не хватало сертификата. Дополнительный сертификат доступен в этом посте, но я не хотел слепо ему доверять. Я просмотрел список сертификатов CA с сайта cURL , и он указан там, поэтому я ему доверяю.

Сертификат:

Verisign Class 3 Public Primary Certification Authority
=======================================================
-----BEGIN CERTIFICATE-----
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
Tqj/ZA1k
-----END CERTIFICATE-----

Я поместил его в файл в:

/usr/share/ca-certificates/curl/Verisign_Class_3_Public_Primary_Certification_Authority-from_cURL.crt

Затем я изменил /etc/ca-certificates.conf и добавил в конце следующую строку:

curl/Verisign_Class_3_Public_Primary_Certification_Authority-from_cURL.crt

После этого я выполнил команду:

sudo update-ca-Certificates

Заглянул в / Каталог etc / ssl / certs Я вижу, что он правильно связан:

ls -al | grep cURL
lrwxrwxrwx 1 root root     69 2012-03-27 16:03 415660c1.0 -> Verisign_Class_3_Public_Primary_Certification_Authority-from_cURL.pem
lrwxrwxrwx 1 root root     69 2012-03-27 16:03 7651b327.0 -> Verisign_Class_3_Public_Primary_Certification_Authority-from_cURL.pem
lrwxrwxrwx 1 root root    101 2012-03-27 16:03 Verisign_Class_3_Public_Primary_Certification_Authority-from_cURL.pem -> /usr/share/ca-certificates/curl/Verisign_Class_3_Public_Primary_Certification_Authority-from_cURL.crt

И все работает!

curl  -I https://test.sagepay.com
HTTP/1.1 200 OK...
6
ответ дан 3 December 2019 в 01:20

Можете ли вы сделать ] curl -Iv https://test.sagepay.com и обновите свой вопрос этими результатами?

В окне Ubuntu 10.04 я вижу:

$ curl -Iv https://test.sagepay.com
* About to connect() to test.sagepay.com port 443 (#0)
*   Trying 195.170.169.8... connected
* Connected to test.sagepay.com (195.170.169.8) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using RC4-MD5
* Server certificate:
*    subject: 1.3.6.1.4.1.311.60.2.1.3=GB; 2.5.4.15=Private Organization; serialNumber=01045967; C=GB; ST=TYNE AND WEAR; L=Newcastle Upon Tyne; O=Sage (UK) Limited; OU=Sage; OU=Terms of use at www.verisign.co.uk/rpa (c)05; OU=Authenticated by VeriSign; OU=Member, VeriS

и так далее, так что все выглядит нормально.

Обратите внимание, что CApath - это / etc / ssl / certs. Можете ли вы запустить sudo update-ca-сертификаты ? Это должно быть в пакете ca-сертификатов . Если этот пакет не установлен, попробуйте sudo apt-get install ca-сертификаты . Если пакет ca-сертификатов не установлен, то список сертификатов CA Ubuntu не установлен, и вы получите ошибки проверки.

Изменить:

Я пропустил ту часть, где вы скажем, вы установили пакет ca-сертификатов . В этом случае нам действительно нужно увидеть подробный вывод от curl -Iv .

Edit 2:

Хорошо, я запускаю эту команду:

strace -o /tmp/foo.out curl -Iv https://test.sagepay.com

Это сбрасывает strace в /tmp/foo.out. Глядя на файл strace на предмет любых упоминаний «ssl», я вижу:

$ grep ssl /tmp/foo.out 
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
stat("/etc/ssl/certs/7651b327.0", {st_mode=S_IFREG|0644, st_size=834, ...}) = 0
open("/etc/ssl/certs/7651b327.0", O_RDONLY) = 4
stat("/etc/ssl/certs/7651b327.1", 0x7fffbef10f20) = -1 ENOENT (No such file or directory)

Этот сертификат /etc/ssl/certs/7651b327.0 используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли в вашей системе /etc/ssl/certs/7651b327.0? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

тогда список сертификатов CA Ubuntu не установлен, и вы получите ошибки проверки.

Edit:

Я вижу, что я пропустил часть, где вы говорите, что установили пакет ca-Certific . В этом случае нам действительно нужно увидеть подробный вывод от curl -Iv .

Edit 2:

Хорошо, я запускаю эту команду:

strace -o /tmp/foo.out curl -Iv https://test.sagepay.com

Это сбрасывает strace в /tmp/foo.out. Глядя на файл strace на предмет любых упоминаний «ssl», я вижу:

$ grep ssl /tmp/foo.out 
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
stat("/etc/ssl/certs/7651b327.0", {st_mode=S_IFREG|0644, st_size=834, ...}) = 0
open("/etc/ssl/certs/7651b327.0", O_RDONLY) = 4
stat("/etc/ssl/certs/7651b327.1", 0x7fffbef10f20) = -1 ENOENT (No such file or directory)

Этот сертификат /etc/ssl/certs/7651b327.0 используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли /etc/ssl/certs/7651b327.0 в вашей системе? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

тогда список сертификатов CA Ubuntu не установлен, и вы получите ошибки проверки.

Edit:

Я вижу, что я пропустил часть, где вы говорите, что установили пакет ca-Certific . В этом случае нам действительно нужно увидеть подробный вывод от curl -Iv .

Edit 2:

Хорошо, я запускаю эту команду:

strace -o /tmp/foo.out curl -Iv https://test.sagepay.com

Это сбрасывает strace в /tmp/foo.out. Глядя на файл strace на предмет любых упоминаний «ssl», я вижу:

$ grep ssl /tmp/foo.out 
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
stat("/etc/ssl/certs/7651b327.0", {st_mode=S_IFREG|0644, st_size=834, ...}) = 0
open("/etc/ssl/certs/7651b327.0", O_RDONLY) = 4
stat("/etc/ssl/certs/7651b327.1", 0x7fffbef10f20) = -1 ENOENT (No such file or directory)

Этот сертификат /etc/ssl/certs/7651b327.0 используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли в вашей системе /etc/ssl/certs/7651b327.0? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

и вы получите ошибки проверки.

Edit:

Я вижу, что я пропустил часть, где вы говорите, что установили пакет ca-Certific . В этом случае нам действительно нужно увидеть подробный вывод от curl -Iv .

Edit 2:

Хорошо, я запускаю эту команду:

strace -o /tmp/foo.out curl -Iv https://test.sagepay.com

Это сбрасывает strace в /tmp/foo.out. Глядя на файл strace на предмет любых упоминаний «ssl», я вижу:

$ grep ssl /tmp/foo.out 
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
stat("/etc/ssl/certs/7651b327.0", {st_mode=S_IFREG|0644, st_size=834, ...}) = 0
open("/etc/ssl/certs/7651b327.0", O_RDONLY) = 4
stat("/etc/ssl/certs/7651b327.1", 0x7fffbef10f20) = -1 ENOENT (No such file or directory)

Этот сертификат /etc/ssl/certs/7651b327.0 используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли /etc/ssl/certs/7651b327.0 в вашей системе? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

и вы получите ошибки проверки.

Edit:

Я вижу, что я пропустил ту часть, где вы говорите, что установили пакет ca-Certific . В этом случае нам действительно нужно увидеть подробный вывод от curl -Iv .

Edit 2:

Хорошо, я запускаю эту команду:

strace -o /tmp/foo.out curl -Iv https://test.sagepay.com

Это сбрасывает strace в /tmp/foo.out. Глядя на файл strace на предмет любых упоминаний «ssl», я вижу:

$ grep ssl /tmp/foo.out 
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
stat("/etc/ssl/certs/7651b327.0", {st_mode=S_IFREG|0644, st_size=834, ...}) = 0
open("/etc/ssl/certs/7651b327.0", O_RDONLY) = 4
stat("/etc/ssl/certs/7651b327.1", 0x7fffbef10f20) = -1 ENOENT (No such file or directory)

Этот сертификат /etc/ssl/certs/7651b327.0 используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли /etc/ssl/certs/7651b327.0 в вашей системе? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

В этом случае нам действительно нужно увидеть подробный вывод от curl -Iv .

Edit 2:

Хорошо, я запускаю эту команду:

strace -o /tmp/foo.out curl -Iv https://test.sagepay.com

Это сбрасывает strace в /tmp/foo.out. Глядя на файл strace на предмет любых упоминаний «ssl», я вижу:

$ grep ssl /tmp/foo.out 
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
stat("/etc/ssl/certs/7651b327.0", {st_mode=S_IFREG|0644, st_size=834, ...}) = 0
open("/etc/ssl/certs/7651b327.0", O_RDONLY) = 4
stat("/etc/ssl/certs/7651b327.1", 0x7fffbef10f20) = -1 ENOENT (No such file or directory)

Этот сертификат /etc/ssl/certs/7651b327.0 используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли в вашей системе /etc/ssl/certs/7651b327.0? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

В этом случае нам действительно нужно увидеть подробный вывод из curl -Iv .

Редактировать 2:

Хорошо, я запускаю эту команду:

strace -o /tmp/foo.out curl -Iv https://test.sagepay.com

Это сбрасывает strace в /tmp/foo.out. Глядя на файл strace на предмет любых упоминаний «ssl», я вижу:

$ grep ssl /tmp/foo.out 
open("/lib/libssl.so.0.9.8", O_RDONLY)  = 3
stat("/etc/ssl/certs/7651b327.0", {st_mode=S_IFREG|0644, st_size=834, ...}) = 0
open("/etc/ssl/certs/7651b327.0", O_RDONLY) = 4
stat("/etc/ssl/certs/7651b327.1", 0x7fffbef10f20) = -1 ENOENT (No such file or directory)

Этот сертификат /etc/ssl/certs/7651b327.0 используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли в вашей системе /etc/ssl/certs/7651b327.0? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

0 - это то, что используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли /etc/ssl/certs/7651b327.0 в вашей системе? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

0 - это то, что используется для проверки сертификата test.sagepay.com. После этого:

$ readlink -f /etc/ssl/certs/7651b327.0
/usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt

Существует ли /etc/ssl/certs/7651b327.0 в вашей системе? Существует ли /usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt?

2
ответ дан 3 December 2019 в 01:20

Теги

Похожие вопросы