【鸡翅Club】Nas搭建中间键方案

采用的是绿联云 DH2600

【鸡翅Club】Nas搭建中间键方案插图

1. 在绿联云上安装容器

这里可以开启绿联云的调试功能,进入服务器后台。使用 docker 命令创建容器:

docker run -d \ --name nacos \ --privileged \ --env MODE=standalone \ -p 8848:8848/tcp \ -p 9848:9848/tcp \ --restart=always \ -w /home/nacos \ nacos/nacos-server:v2.1.0

注意:nacos 建议是 2.1.0 版本之前的,后面的版本

docker run -d \ --name elasticsearch \ --restart always \ -p 9200:9200 \ -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms4096m -Xmx4096m" \ -v /home/harmony/elasticsearch/data:/usr/share/elasticsearch/data \ -v /home/harmony/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ elasticsearch:7.3.1

注意:记得分配一下目录的权限:chmod 777 [ 目录 ]

2. 内网穿透

这里我们选用的是 SakuraFrp

Sakura Frp | 樱花内网穿透 — 免费内网穿透_免费端口映射_高速_高防节点_不限流量_Minecraft我的世界_微信开发调试_群辉NAS_无需公网_免备案

这里以 nacos 容器的内网穿透为例,登入自己的账号配置 SaKuraFrp:

【鸡翅Club】Nas搭建中间键方案插图1

在绿联云 docker 上安装 natfrp 容器

可以直接使用下面的压缩包,导入到绿联云的 docker 里面

ghcr.io_natfrp_frpc_latest.taricon-default.png?t=O83Ahttps://www.yuque.com/attachments/yuque/0/2024/tar/27505918/1722773252852-b94bc4e1-9dc1-49ac-a7b6-f1c8b519ed0c.tar

【鸡翅Club】Nas搭建中间键方案插图3

查询 NATFRP_TARGETNATFRP_TOKEN

【鸡翅Club】Nas搭建中间键方案插图4

【鸡翅Club】Nas搭建中间键方案插图5

创建 natftp/frp 容器,将 NATFRP_TARGETNATFRP_TOKEN 填入即可

【鸡翅Club】Nas搭建中间键方案插图6

启动容器,打开浏览器,连接下面的 IP(例如:nacos 的就是【ip:端口/nacos】)

【鸡翅Club】Nas搭建中间键方案插图7

【鸡翅Club】Nas搭建中间键方案插图8

3. SakuraFrp 子域名绑定配置 SSL 证书

【鸡翅Club】Nas搭建中间键方案插图9

使用这个子域名访问,页面确实不会再出现"红色感叹号"的警告了,但是在 Java 项目中配置 nacos 后,启动确依然会报错:

【鸡翅Club】Nas搭建中间键方案插图10

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[?:1.8.0_401]

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

at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439) ~[?:1.8.0_401]

… 38 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:148) ~[?:1.8.0_401]

at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:129) ~[?:1.8.0_401]

这通常意味着 Java 应用程序无法验证服务器证书的有效性,因为它无法构建一条从根证书到目标证书的有效信任链。所以我们需要使用 keytool 将服务器的根证书或中间证书导入到 Java 的信任库中。

3.1. 导入证书

【鸡翅Club】Nas搭建中间键方案插图11

keytool -import -alias nacos-ssl -file "C:\Users\Harmony\Desktop\u1600292.nyat.app_full.crt" -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit -trustcacerts

注意:

  • -alias:证书名称
  • -keystore:证书存放位置(可以找一下 jdk 目录下的 cacerts 在什么位置)
  • -storepass:密码,(默认都是 changeit
  • -trustcacerts:这个选项告诉 keytool 该命令是在更新信任证书库 (cacerts),而不是普通的密钥库。

3.2. 查看证书

keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

【鸡翅Club】Nas搭建中间键方案插图12

3.3. 删除证书

keytool -delete -alias nacos-ssl -file "C:\Users\Harmony\Desktop\u1600292.nyat.app_full.crt" -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit -trustcacerts

3.4. keytool 相关参数

-certreq 生成证书请求

-changealias 更改条目的别名

-delete 删除条目

-exportcert 导出证书

-genkeypair 生成密钥对

-genseckey 生成密钥

-gencert 根据证书请求生成证书

-importcert 导入证书或证书链

-importpass 导入口令

-importkeystore 从其他密钥库导入一个或所有条目

-keypasswd 更改条目的密钥口令

-list 列出密钥库中的条目

-printcert 打印证书内容

-printcertreq 打印证书请求的内容

-printcrl 打印 CRL 文件的内容

-storepasswd 更改密钥库的存储口令

原文链接:https://blog.csdn.net/weixin_43715214/article/details/143284323?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522851726b1e5c3459da659207462bf9f86%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=851726b1e5c3459da659207462bf9f86&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-18-143284323-null-null.nonecase&utm_term=%E7%BB%BF%E8%81%94nas

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享