默认情况下,Knife SoftLayer使用API端点有api.softlayer.com。 :host => " api.softlayer.com"
由于API中断事件,我需要将API端点更改为api-dev.softlayer.com。
如何对Knife SoftLayer插件进行上述更改?
活动说明 主题:API中断:3月1日IBM Cloud将停止在api.softlayer.com和api.service.softlayer.com上支持TLS 1.0和1.1
发生了什么事? 2018年3月1日UTC时间(0300 CDT),IBM Cloud Infrastructure将停止支持api.softlayer.com和api.service.softlayer.com上的TLS 1.0和1.1加密。这些API端点仅支持使用TLS 1.2加密级别或更高级别的呼叫者。
什么时候会发生? 在2018年3月1日格林威治标准时间0900(0300 CDT),将不再支持TLS 1.0和TLS 1.1,并且需要TLS 1.2+。
这会影响谁? 具有代码或服务的任何用户,这些代码或服务引用了加密级别低于TLS 1.2的IBM Cloud Infrastructure服务的softlayer.com API端点。
确认并测试升级到TLS 1.2或更高版本 目前,在备用端点上强制实施增强的安全配置。您现在可以针对它们测试您的服务,以确保主端点收到更新的配置后不会中断:
•api-dev.softlayer.com(而不是api.softlayer.com) •api-dev.service.softlayer.com(而不是api.service.softlayer.com)
答案 0 :(得分:1)
我只能为您提供解决方法。我建议等待来自knife-softlayer开发人员的响应,他们可能会在这里提供更好的解决方案https://github.com/softlayer/knife-softlayer/issues/56
knife-softlayer调用 fog-softlayer gem来执行API请求,因此我建议修改此gem的源代码,因为无法通过刀设置不同的端点-softlayer的配置文件。
要知道安装了fog-softlayer的位置,您可以执行以下命令:
gem list -e fog-softlayer -d
答案如下:
fog-softlayer (1.1.4)
Author: Matt Eldridge
Homepage: https://github.com/fog/fog-softlayer
License: MIT
Installed at: /var/lib/gems/2.4.0
在修改源代码之前,首先转到安装了fog-softlayer的文件夹,我的情况是 /var/lib/gems/2.4.0 < / EM> 即可。 第二,确保您可以使用端点api-dev.softlayer.com执行API REST调用。
Note: I will assume that the REST endpoint is http://api-dev.softlayer.com/rest/v3
打开文件 gems / fog-softlayer-1.1.4 / lib / fog / softlayer.rb 并搜索以下代码行:
SL_API_URL = ENV['SL_API_URL'] ? ENV['SL_API_URL'] : 'api.softlayer.com/rest/v3' unless defined? SL_API_URL
通过您要使用的端点进行修改,例如:
SL_API_URL = ENV['SL_API_URL'] ? ENV['SL_API_URL'] : 'api-dev.softlayer.com/rest/v3' unless defined? SL_API_URL
如果端点指向 http而不是https ,请修改文件 gems / fog-softlayer-1.1.4 / lib / fog / softlayer / slapi.rb 如下:
搜索:
@request_url = "https://#{sanitize_username(username)}:#{apikey}@#{@request_url}"
通过以下方式更改:
@request_url = "http://#{sanitize_username(username)}:#{apikey}@#{@request_url}"
打开文件 gems / fog-softlayer-1.1.4 / lib / fog / softlayer / slapi.rb 并搜索以下代码行:
@request_url = "https://#{sanitize_username(username)}:#{apikey}@#{@request_url}"
通过以下方式更改:
@request_url = "http://#{sanitize_username(username)}:#{apikey}@api-dev.softlayer.com/rest/v3"