[英]Using the AWS SDK during a chef run errors but running it outside of chef works
我有一個通過AWS-SDK提取信息的幫助程序庫,因此它可以返回名稱列表,如下所示:
def get_load_balancer_names
self.elb_client.describe_load_balancers[:load_balancer_descriptions].map { |elb| elb[:load_balancer_name] }
end
在廚師運行期間運行此代碼時,出現此錯誤:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed[0m
但是,當我在廚師運行之外運行代碼時,它就可以工作了(我得到了我期望的ELB名稱列表)。
我使用IAM角色進行身份驗證。
我確實發現這添加了一個(潛在的)修復程序,因此您可以執行以下操作:
AWS.config(:ssl_ca_path => '/...')
但這並不是真正的選擇,因為我寧願自己解決問題(除非沒有其他方法可以解決)。
我認為可能是廚師運行期間AWS-SDK正在使用廚師SSL證書,這可能是原因。
為什么會出現這樣的錯誤,我該如何解決?
據我所知,這與Mozilla有關,Mozilla在2014年末刪除了1024位Root CA證書。從技術上講,這很好,但不幸的是打破了許多舊證書鏈。
在“ RSA-1024已刪除”部分http://curl.haxx.se/docs/caextract.html中對此問題進行了說明。
在ChefDK中, 網址為https://github.com/chef/chef-dk/issues/199#issuecomment-60643682
Omnibus( https://downloads.chef.io/ )最近發布的ChefDK和Chef-Client版本包括帶有舊RSA-1024根證書的根信任。
我建議您更新廚師客戶端。
如果尚未使用chef.io的Omnibus安裝程序,則需要手動更新發行版/ OpenSSL的根證書。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.