尝试修补 SUSE Server AWS 时出现问题
Posted
技术标签:
【中文标题】尝试修补 SUSE Server AWS 时出现问题【英文标题】:Issue while trying to patch SUSE Server AWS 【发布时间】:2021-06-08 18:04:43 【问题描述】:我现在真的被这个问题困扰了一段时间,所以想接触更广泛的受众,看看是否有人面临类似的问题。
我正在尝试修补 SLES 服务器 15-SP1,但我不能。我在日志中看到以下错误。
====云注册日志====
2021-06-08 14:23:00,314 INFO:强制新注册 2021-06-08 14:23:00,321 信息:未设置当前注册服务器。 2021-06-08 14:23:00,322 信息:使用 API:regionInfo 2021-06-08 14:23:00,328 信息:区域服务器参数:?regionHint=me-south-1 2021-06-08 14:23:00,328 INFO:获取更新服务器信息,尝试 1 2021-06-08 14:23:00,328 信息:使用区域服务器:54.223.148.145 2021-06-08 14:23:01,346 信息:未设置当前注册服务器。 2021-06-08 14:23:01,373 信息:修改 /etc/hosts,添加:157.175.6.182 smt-ec2.susecloud.net smt-ec2
2021-06-08 14:23:02,674 信息:编写 SMT rootCA:/usr/share/pki/trust/anchors 2021-06-08 14:23:02,689 信息:更新 CA 证书:update-ca-certificates 2021-06-08 14:23:03,211 错误:使用('157.175.6.182',无)的注册失败。尝试('15.185.47.44',无) 2021-06-08 14:23:03,211 INFO:清理当前注册服务器:('157.175.6.182',无) 2021-06-08 14:23:03,212 INFO:修改 /etc/hosts,添加:15.185.47.44 smt-ec2.susecloud.net smt-ec2
2021-06-08 14:23:03,432 错误:使用('15.185.47.44',无)的注册失败。正在尝试('157.175.138.207',无) 2021-06-08 14:23:03,432 信息:未设置当前注册服务器。 2021-06-08 14:23:03,432 INFO:修改 /etc/hosts,添加:157.175.138.207 smt-ec2.susecloud.net smt-ec2
2021-06-08 14:23:03,646 错误:基础产品注册失败 2021-06-08 14:23:03,646 错误:将系统注册到注册代理https://smt-ec2.susecloud.net
向https://smt-ec2.susecloud.net 宣布系统... SSL 验证失败:无法获取本地颁发者证书 证书颁发者:/C=DE/ST=Bavaria/L=Nuremberg/O=SUSE/OU=CSM/CN=SUSE/ emailAddress=suse-public-cloud@susecloud.net 证书主题:/C=DE/ST=Bavaria/L=Nuremberg/O=SUSE/OU=Public Cloud/CN=更新服务器证书 (smt-ec2.susecloud.net) /emailAddress=suse-public-cloud@susecloud.net SUSEConnect 错误:OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: 证书验证失败(无法获取本地颁发者证书)
================================================ ======================
感谢任何帮助或领导。
谢谢
【问题讨论】:
【参考方案1】:这些步骤可以帮助您:
-
将 ssl 证书下载到本地计算机(使用 openssl)
echo -n | openssl s_client -connect smt-ec2.susecloud.net:443 -servername smt-ec2.susecloud.net\
| openssl x509 > /tmp/smt-ec2.susecloud.net.cert
-
复制证书
cp /tmp/smt-ec2.susecloud.net.cert /etc/pki/trust/anchors/
-
导入证书:
update-ca-certificates
【讨论】:
【参考方案2】:我猜您是直接在 SUSE 实例上执行更新。更好地管理 AWS 中的补丁执行的一个选项是通过 Patch Manager。 Patch Manager 可以在 AWS 系统管理器下运行,该管理器抽象了此类管理并使其更易于执行。
通过系统管理器的补丁管理器允许您在操作系统级别抽象更新管理管理,只关注云层而不必担心运行“yum update”或“apt-get update”,补丁管理器具有自动日志的回滚和输出非常适合调试此类问题。
要配置补丁管理器,您需要在机器上安装 SSM 代理,此过程非常简单,您可以运行脚本进行安装,此外 SSM 代理将允许您使用 Systems Manager 执行其他操作.
如何在 SUSE 服务器中安装 SSM 代理:
https://docs.aws.amazon.com/systems-manager/latest/userguide/agent-install-sles.html
安装成功后需要配置补丁执行。您也可以按照本指南进行操作:
https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html
另外,关于您的错误:
Baseproduct registration failed 2021-06-08 14:23:03,646 ERROR: Registering system to registration proxy https://smt-ec2.susecloud.net
显然服务器(EC2 实例)无法连接到 SUSE 上的许可证注册,甚至无法找到面向云的 suse 许可证类型的补丁地址。您可以尝试使用 suse 或 AWS 开票并报告此错误,表明它正在影响生产环境。他们一定会指导您完成在云模型中正确注册许可证的步骤,因为 suse 和 AWS 有一些合作伙伴关系来支持这种类型的服务器 (About SUSE and AWS support)
根据 suse KB (Suse Reference) 更正此 SMT(订阅管理工具)的步骤:
确保 SMT 服务器已启用并镜像所有必要的 SLES12 SP2 存储库(例如 SLES12-SP2-Pool、SLES12-SP2-Updates):
导航到 YaST ->“网络服务”->“SMT 服务器管理”GUI 向导。
选择并启用必要的 SLES12 SP2 相关存储库。
启动 SMT 镜像操作。
SMT 镜像操作完成后,SUSEConnect 命令应该能够成功注册 SMT 客户端机器。
之后,尝试再次运行更新。
【讨论】:
感谢 Luis 的回复。我发现这个问题与openssl有关。由于某种原因,它没有指向正确的根 CA,并且该实例无法向 SUSE SMT 注册。以上是关于尝试修补 SUSE Server AWS 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 AWS Lambda 但不是桌面访问 AWS Device Farm 时出现 SSL 证书错误
AWS Cognito 在尝试登录时出现 BadRequest 错误
尝试连接到 AWS Gateway 私有 API 时出现 UnknownHostException