当前位置: 首页 > news >正文

网站文字广告代码广告制作公司

网站文字广告代码,广告制作公司,二级目录做网站,家装品牌排行榜前十名文章目录 1.配置SSL证书使用HTTPS访问2.MINIO SDK 忽略证书验证3.使用受信任的证书 1.配置SSL证书使用HTTPS访问 生成域名对应的SSL证书,下载Apache版本,我目前只发现Apache这个里面有对应的私钥和证书 私钥重命名为private.key证书重命名为public.crt&…

文章目录

    • 1.配置SSL证书使用HTTPS访问
    • 2.MINIO SDK 忽略证书验证
    • 3.使用受信任的证书

1.配置SSL证书使用HTTPS访问

生成域名对应的SSL证书,下载Apache版本,我目前只发现Apache这个里面有对应的私钥和证书
在这里插入图片描述私钥重命名为private.key证书重命名为public.crt,不更改为指定格式则会无法被识别。
将公钥和证书放入root/.minio/certs文件夹中,此文件夹安装minio时自动生成的
在这里插入图片描述

重新启动minion可以看到启动日志中http变成了https,此时可以使用https://域名.com:9001进行访问了

2.MINIO SDK 忽略证书验证

在使用Java SDK与自签名证书的服务器进行通信时,一般可以通过自定义SSLContext来忽略证书验证。

MinIO的Java SDK(version 8.0.6及以上)允许自定义OkHttpClient,我们可以使用httpClient方法传递一个自定义的OkHttpClient实例。以便在HTTP、正常HTTPS和自签名HTTPS之间实现兼容性

下面是如何使用自定义的OkHttpClient实现对HTTP、正常HTTPS和自签名HTTPS的兼容性

@Configuration
@EnableConfigurationProperties(MinioProperties.class)
public class MinioConfig {private static final Logger LOGGER = LoggerFactory.getLogger(MinioConfig.class);@Beanpublic MinioClient minioClient(MinioProperties properties){properties.check();// Create a trust manager that does not validate certificate chainsTrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}public void checkClientTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any client certificate)}public void checkServerTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any server certificate)}}};// Install the all-trusting trust managerSSLContext sslContext = null;try {sslContext = SSLContext.getInstance("SSL");sslContext.init(null, trustAllCerts, new java.security.SecureRandom());} catch (Exception e) {LOGGER.error("Install the all-trusting trust manager error:{}", e.getMessage());}// Create a custom OkHttpClient that trusts all certificatesOkHttpClient customHttpClient = new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0]).hostnameVerifier((hostname, session) -> true).build();// Set the custom SSLContext for MinioClientreturn MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).httpClient(customHttpClient).build();}}

1.在上面的代码中,我们创建了一个SSLContext,其中的X509TrustManager会信任所有证书,无论其是否由信任的证书颁发机构(CA)签署。
2.创建了一个自定义的OkHttpClient,该客户端信任所有证书。然后,我们使用MinioClient.builder()方法,将自定义的OkHttpClient传递给httpClient()方法

这种方法会将所有证书都视为受信任的,因此请仅在非生产环境中使用此方法,以确保通信的安全性和完整性。在生产环境中,建议使用受信任的SSL证书。

代码优化

@Configuration
@EnableConfigurationProperties(MinioProperties.class)
public class MinioConfig {private static final Logger LOGGER = LoggerFactory.getLogger(MinioConfig.class);@Beanpublic MinioClient minioClient(MinioProperties properties){properties.check();OkHttpClient customHttpClient = null;if (properties.getEndpoint().startsWith("https://")) {// 如果是HTTPS,使用自定义的OkHttpClient处理自签名的HTTPS请求customHttpClient = createCustomOkHttpClient();}MinioClient minioClient;if (customHttpClient != null) {// 如果使用了自定义的OkHttpClientminioClient = MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).httpClient(customHttpClient).build();} else {// 如果是普通HTTP,使用默认的OkHttpClientminioClient = MinioClient.builder().endpoint(properties.getEndpoint()).credentials(properties.getAccessKey(), properties.getSecretKey()).build();}return minioClient;}/*** Set the custom SSLContext for MinioClient* @return*/private static OkHttpClient createCustomOkHttpClient() {// 创建自定义的OkHttpClient,用于处理自签名的HTTPS请求// Create a trust manager that does not validate certificate chainsTrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}public void checkClientTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any client certificate)}public void checkServerTrusted(X509Certificate[] certs, String authType) {// Do nothing (trust any server certificate)}}};// Install the all-trusting trust managerSSLContext sslContext = null;try {sslContext = SSLContext.getInstance("SSL");sslContext.init(null, trustAllCerts, new java.security.SecureRandom());} catch (Exception e) {LOGGER.error("Install the all-trusting trust manager error:{}", e.getMessage());}// Create a custom OkHttpClient that trusts all certificatesOkHttpClient customHttpClient = new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0]).hostnameVerifier((hostname, session) -> true)// 增加minio http请求日志打印//.addInterceptor(new CustomLoggingInterceptor()) // Add custom interceptor here.build();return customHttpClient;}}

3.使用受信任的证书

minio 8.4.4 使用自签名的https的api连接会报错证书错误

报错日志

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

问题原因
通常是因为MinIO默认情况下会验证服务器的TLS证书。在生产环境中,使用自签名证书并不推荐,因为它们不受信任的证书颁发机构(CA)签署,可能会导致安全问题。

解决问题
1.使用受信任的证书
为了在生产环境中确保安全性,建议获取一个受信任的SSL证书,可以从证书颁发机构(CA)购买,或者使用免费的证书颁发机构(例如Let’s Encrypt)获取SSL证书。
CA比较新或自行颁发的证书,需要将证书加入到jdk的信任证书库中,
把该证书导入java中的cacerts证书库里
Jdk的安装目录 C:\Program Files\Java\jdk1.8.0\jre\lib\security
执行系统命令:
1、进入安装目录
cd C:\Program Files\Java\jdk1.8.0\jre\lib\security
2、自签证书添加到jdk的信任证书库中

keytool -import -alias <alias-name> -file <certificate-file> -keystore <keystore-file> -storepass <password>

在这个命令中:

是您为导入的证书指定的别名。
是包含要导入证书的文件的路径。
是密钥库文件的路径。在Java的默认安装中,这通常是$JAVA_HOME/lib/security/cacerts,但也可以是您指定的任何其他密钥库文件。
是密钥库的密码。对于Java的默认cacerts文件,这通常是changeit,但如果您更改了密码,则需要使用新密码。

keytool -import -alias minio -file .\www.oa.cn_public.crt -keystore /home/jdk/jdk-8u251-linux-x64/jdk1.8.0_251/jre/lib/security/cacerts -storepass changeit

2.同2忽略证书验证

http://www.dinnco.com/news/30259.html

相关文章:

  • 网站做测试台州网站建设方案推广
  • 网站备案 2016沧州网站seo公司
  • 一个网站开发的假设企业培训系统
  • 泸州市往建局建设银行网站名称网页设计模板素材图片
  • 做厂家批发的网站网络广告名词解释
  • 哪个网站找做软件sem营销
  • 垂直网站建设方案投放广告的网站
  • 学校做网站难吗创网站永久免费建站
  • 个人主页介绍模板搜索引擎营销就是seo
  • 第一赢销网厦门seo推广外包
  • 网站后台建设费用公司网站建设费用多少
  • 建设网站公司东莞在线外链
  • 临平房产做网站的公司品牌营销策划怎么写
  • 那里可以免费建网站常见的网络营销方法
  • 做调查挣钱的网站网络营销论文题目
  • 网站如何自己做seo教育培训班
  • 推荐常州模板网站建设企业培训内容包括哪些内容
  • wordpress教程 迅雷新媒体seo指的是什么
  • 免费推广的方式seo快速排名服务
  • 婚礼网站怎么做深圳推广平台有哪些
  • 成品网站货源入口凡科建站官网入口
  • 支付网站开发费分录百度智能云官网
  • 芜湖做网站找哪家好今日头条普通版
  • 一个网站需要哪些东西线上营销策划方案
  • web是做网站的吗重庆网站优化排名推广
  • 网站建设规划书txt微盘建站平台哪个比较权威
  • 域名申请好了 要怎么做网站网络营销郑州优化推广公司
  • 合众商道网站开发永久免费域名注册
  • 网站开发职责网站建设开发价格
  • 网站开发的服务器是什么搜索引擎优化目标