开发常见问题
开发常见问题
# maven 连接启动了 TLS 的仓库时,因证书问题无法连接
# 短期解决办法
mvn clean install -Dmaven.wagon.http.ssl.insecure=true
# 长期解决办法
# 将仓库的证书导入 java keystore, 如下命令将证书导入默认 cacerts 并设置别名为 maven_certs,默认密码为changeit
user@GH-HT6M693:~$ sudo /opt/java/zulu8.66.0.16-sa-jdk8.0.352-linux_x64/bin/keytool -import -alias maven_certs -keystore /opt/java/zulu8.66.0.16-sa-jdk8.0.352-linux_x64/jre/lib/security/cacerts -file ~/maven.crt
Enter keystore password:
......
Trust this certificate? [no]: yes
Certificate was added to keystore
# Local CA 自签发证书不被curl/wget等程序信任
# 问题描述:
在公司的电脑上用 WSL(Ubuntu)
上安装 PostgreSQL
,需要先导入 repository signing key:
# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
执行该命令失败,排查后发现原因是公司网络使用的是Local CA,而该 CA 在公司电脑上是被信任的,而在 WSL
中不被信任.
# 短期解决办法
忽略证书, 将上述命令改为:
wget --no-check-certificate --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
但这只是短期解决方案,下次使用curl/wget访问别的链接,同样需要添加忽略证书参数,因此有必要找到一个长期解决方案。
# 长期解决办法
将 Local CA 导入 WSL(Ubuntu)
的 trust store即可。
# 从浏览器 export Root CA cert:
- F12 -> Securit -> View certificate -> Details -> Certificate Hierarchy -> 点击选择第一个Root CA -> Export
- 保存到本地,命名为 local-ca.crt
# 导入 trust store
只能将
PEM
格式的证书安装到trust store, 如果证书是其他格式,需要先将其转换成PEM
格式。
PEM
格式证书形如:
-----BEGIN CERTIFICATE-----
...
...
...
-----END CERTIFICATE-----
取得证书之后,使用如下命令导入:
sudo apt-get install -y ca-certificates
sudo cp local-ca.crt /usr/local/share/ca-certificates
sudo update-ca-certificates
上次更新: 2023/12/08, 06:34:37