S3 не является никакой альтернативой, счет для 80 TByte будет по одному только 8k$ в месяц.
Похоже, что Вы поделом GIFs из файловой системы. Почему Вы не помещаете весь GIFs на 2 машины, используйте хеш-алгоритм, отображающий имя к одной из этих 2 машин, и поставьте им этот путь? Это легко масштабировалось бы к большему количеству машин, пока Ваш loadbalancer держит …
Получается, что установка пакета 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...
Можете ли вы сделать ] 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?