Я пытаюсь загрузить фотографию в свой ковш AWS, но столкнулся с ошибкой, упомянутой в заголовке. Я понимаю, что это скорее всего связано с моими сертификатами OpenSSL, но любое предлагаемое решение, которое я пробовал, до сих пор не удалось.Получение «SSL_connect возвращено = 1 errno = 0 state = ошибка: проверка сертификата не удалась» при подключении к S3
Я столкнулся с этой проблемой с ruby 2.3.1, Rails 4.1.8, aws-sdk-core 2.3.4 и несущей волной 0.11.0 на OSX Yosemite.
Я попробовал все доступные найти на этой подобной проблеме, а также, как и другие (это один быть с Windows): https://github.com/aws/aws-sdk-core-ruby/issues/166#issuecomment-111603660
Вот некоторые из моих файлов:
carrierwave.rb
CarrierWave.configure do |config| # required
config.aws_credentials = {
access_key_id: Rails.application.secrets.aws_access_key_id, # required
secret_access_key: Rails.application.secrets.aws_access_key, # required
region: 'eu-west-2' # optional, defaults to 'us-east-1'
}
config.aws_bucket = Rails.application.secrets.aws_bucket # required
config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" } # optional, defaults to {}
end
avatar_uploader.rb
class AvatarUploader < CarrierWave::Uploader::Base
storage :aws
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
EDIT (подробнее):
stack trace:
Seahorse::Client::NetworkingError - SSL_connect returned=1 errno=0 state=error: certificate verify failed:
/Users/stevenharlow/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:933:in `connect_nonblock'
/Users/stevenharlow/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:933:in `connect'
/Users/stevenharlow/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
/Users/stevenharlow/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:858:in `start'
/Users/stevenharlow/.rbenv/versions/2.3.1/lib/ruby/2.3.0/delegate.rb:83:in `method_missing'
aws-sdk-core (2.3.4) lib/seahorse/client/net_http/connection_pool.rb:292:in `start_session'
aws-sdk-core (2.3.4) lib/seahorse/client/net_http/connection_pool.rb:104:in `session_for'
aws-sdk-core (2.3.4) lib/seahorse/client/net_http/handler.rb:109:in `session'
Solutions пытался:
- Aws.use_bundled_cert!
- Скачать сертификат и ссылки вручную
- Я попытался с помощью Fog вместо carrierwave-AWS
- Пробовал переустановить рубин после обновления rbenv
Вот результат
CONNECTED(00000003)
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Baltimore CA-2 G2
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/C=US/ST=Washington/L=Seattle/O=Amazon.com Inc./CN=*.s3-us-west-2.amazonaws.com
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Baltimore CA-2 G2
1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Baltimore CA-2 G2
i:/C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root
---
<certificate info>
No client certificate CA names sent
---
SSL handshake has read 2703 bytes and written 456 bytes
---
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES128-SHA
Session-ID: <session-id>
Session-ID-ctx:
Master-Key: <master-key>
Key-Arg : None
Start Time: 1463697130
Timeout : 300 (sec)
Verify return code: 0 (ok)
, что происходит, когда вы добавляете "use_ssl: true" в хэш aws_credentials? –
неверный параметр конфигурации ': use_ssl ' Я использую драгоценный камень" carrierwave-aws ", а не туман –
Очевидно, вы видели связанную [github issue] (https://github.com/aws/aws-sdk-core -ruby/issues/166 # issuecomment-219312958), поэтому вы попробовали 'Aws.use_bundled_cert!'. Не могли бы вы рассказать о своих попытках задать вопрос? И можете ли вы добавить полную трассировку стека ошибки? Кроме того, что вызывает загрузку - это загрузка файла из Интернета или что-то более сложное, как фоновое задание? Благодарю. – BoraMa