fix(storage): 关闭 MinIO CNAME 支持解决证书不匹配问题

- 在 AliOssController 中关闭 MinIO 的 CNAME 支持,避免自定义域名被当作 CNAME
- 强制使用 path-style 访问方式,解决虚拟主机风格导致的证书不匹配
- 在 FileRecordServiceImpl 中同步应用同样的配置修改
- 修复了因 OSSV4Signer.getRegion() 返回 null 导致的 NPE 问题
This commit is contained in:
2026-08-07 03:03:25 +08:00
parent 18696f91a6
commit a6a2e14abf
2 changed files with 6 additions and 0 deletions

View File

@@ -125,6 +125,9 @@ public class AliOssController extends BaseController {
// 必须显式指定MinIO 默认 us-east-1否则 OSSV4Signer.getRegion() 为 null 触发 NPE。 // 必须显式指定MinIO 默认 us-east-1否则 OSSV4Signer.getRegion() 为 null 触发 NPE。
minioConfig.setSignatureVersion(SignVersion.V4); minioConfig.setSignatureVersion(SignVersion.V4);
minioConfig.setExtractSettingFromEndpoint(true); minioConfig.setExtractSettingFromEndpoint(true);
// 关闭 CNAME默认 true 会让 SDK 把自定义域名当 CNAME走 bucket.endpoint 虚拟主机风格,
// 触发 *.minio-api.websoft.top 证书不匹配。关闭后强制 path-styleendpoint/bucket/key
minioConfig.setSupportCname(false);
ossClient = OSSClientBuilder.create() ossClient = OSSClientBuilder.create()
.endpoint(endpoint) .endpoint(endpoint)
.credentialsProvider(credentialsProvider) .credentialsProvider(credentialsProvider)

View File

@@ -105,6 +105,9 @@ public class FileRecordServiceImpl extends ServiceImpl<FileRecordMapper, FileRec
// 必须显式指定MinIO 默认 us-east-1否则 OSSV4Signer.getRegion() 为 null 触发 NPE。 // 必须显式指定MinIO 默认 us-east-1否则 OSSV4Signer.getRegion() 为 null 触发 NPE。
minioConfig.setSignatureVersion(SignVersion.V4); minioConfig.setSignatureVersion(SignVersion.V4);
minioConfig.setExtractSettingFromEndpoint(true); minioConfig.setExtractSettingFromEndpoint(true);
// 关闭 CNAME默认 true 会让 SDK 把自定义域名当 CNAME走 bucket.endpoint 虚拟主机风格,
// 触发 *.minio-api.websoft.top 证书不匹配。关闭后强制 path-styleendpoint/bucket/key
minioConfig.setSupportCname(false);
ossClient = OSSClientBuilder.create() ossClient = OSSClientBuilder.create()
.endpoint(endpoint) .endpoint(endpoint)
.credentialsProvider(credentialsProvider) .credentialsProvider(credentialsProvider)