在Linux或macOS上使用STM32CubeIDE时,如何将专用CA证书导入JRE信任库
在Linux或macOS上使用STM32CubeIDE时,如何将证书颁发机构(CA)证书导入JRE信任库?本文描述了在使用Linux时如何将CA证书导入JRE信任库,但同样的方法也适用于主机。。。
在Linux或macOS上使用STM32CubeIDE时,如何将证书颁发机构(CA)证书导入JRE信任库?
本文描述了在使用Linux时如何将CA证书导入JRE信任库,但相同的方法适用于macOS,只是路径略有不同。
1.背景
与STM32CubeIDE捆绑的JRE Java Runtime Environment仅包含公共证书颁发机构(CA)。有时,您需要添加一个专用CA,例如在使用代理服务器访问Internet时。
可能出现以下问题在STM32CubeIDE中,如果CA未包含在信任库中:
javax.net.ssl.ssl握手异常:sun.security.validator.ValidatorException:PKIX路径构建失败:
sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径
2.解决方案
下面列出了如何将专用CA证书导入JRE的信任库的两种方法。这两种方法都使用Java密钥工具将私有CA导入STM32CubeIDE使用的信任库。
2.1方法1–导入JRE信任库的当前版本
将CA证书导入JRE的信任库的当前版本。
优点:使公共CA证书始终保持最新
缺点:每次JRE更新时,都需要重新导入私有CA证书
1.关闭STM32CubeIDE 2.打开STM32CubeIDE安装文件夹3。打开<stm32cubeide.ini>并在文件中找到当前JRE,例如:-vm插件/com.st.stm32cube.ide.jre.linux64_x.x.x.xxxxx/jre/bin4.使用keytool导入CA证书
$cd插件/com.st.stm32cube.ide.jre.linux64_x.x.xxxxx/jre
$bin/keytool-importcert-alias aUniqueName-密钥库lib/security/cacerts-文件PathToTheCaToImport.cer
默认信任库密码为“changeit”,需要保留为
5.对每个所需的CA证书重做步骤4
2.2方法2–从JRE的信任库的当前版本复制
JRE信任库当前版本中的证书重复。
优点:配置在STM32CubeIDE JRE更新中保持不变
缺点:已被吊销的公共CA证书将在STM32CubeIDE中保持受信任
1.关闭STM32CubeIDE
2.打开STM32CubeIDE安装文件夹
3.打开<stm32cubeide.ini>并在文件中找到当前JRE,例如:
-虚拟机
插件/com.st.stm32cube.ide.jre.linux64_x.x.xxxxx/jre/bin
4.复制当前信任库
$cp插件/com.st.stm32cube.ide.jre.linux64_x.x.x.xxxxx/jre/lib/security/cacerts/某处/cacerts
5.使用keytool导入CA证书
$cd插件/com.st.stm32cube.ide.jre.linux64_x.x.xxxxx/jre
$bin/keytool-importcert-alias aUniqueName-密钥库/某处/cacerts-文件PathToTheCaToImport.cer
默认信任库密码为“changeit”,需要保留为
6.对每个所需的CA证书重做步骤5
7.将这些行添加到<stm32cubeide.ini>的末尾
-Djavax.net.ssl.trustStore=/某处/caerts
-Djavax.net.ssl.trustStorePassword=更改它