为了简化操作并确保批处理文件使用当前目录中的证书文件,你可以修改脚本以自动识别当前目录位置。以下是更新后的脚本示例,它将直接使用批处理文件所在的目录作为证书文件的位置。
更新后的脚本:install_certificates.bat
@echo off
setlocal
REM 获取当前批处理文件所在目录
set CERT_DIR=%~dp0
REM 设置证书文件路径(假设证书文件与批处理文件在同一目录)
set CA_CERT=%CERT_DIR%ca.cer
set SERVER_CERT=%CERT_DIR%drlg.b.cc.cer
set SELF_CERT=%CERT_DIR%\server.pfx
REM 检查证书文件是否存在
if not exist "%CA_CERT%" (
echo CA certificate file %CA_CERT% does not exist.
exit /b 1
)
if not exist "%SERVER_CERT%" (
echo Server certificate file %SERVER_CERT% does not exist.
exit /b 1
)
REM 导入 CA 证书到受信任的根证书颁发机构存储
echo Importing CA certificate to Trusted Root Certification Authorities store...
certutil -addstore -f "Root" "%CA_CERT%"
if %errorlevel% neq 0 (
echo Failed to import CA certificate.
exit /b 1
)
echo CA certificate imported successfully.
REM 导入服务器证书到受信任的根证书颁发机构存储(可选)
echo Importing server certificate to Trusted Root Certification Authorities store...
certutil -addstore -f "Root" "%SERVER_CERT%"
if %errorlevel% neq 0 (
echo Failed to import server certificate.
exit /b 1
)
echo Server certificate imported successfully.
REM 导入服务器证书和热门证书(可选)
echo Importing server certificate to Trusted Root Certification Authorities store...
certutil -addstore -f "MY" "%SELF_CERT%"
if %errorlevel% neq 0 (
echo Failed to import server certificate.
exit /b 1
)
echo Server certificate imported successfully.
REM 提示重启浏览器或计算机以使更改生效
echo Certificates have been installed. Please restart your browser or computer for changes to take effect.
endlocal
pause
解释
-
获取当前批处理文件所在目录:
- 使用
%~dp0获取批处理文件所在的驱动器和路径,并将其赋值给CERT_DIR变量。
- 使用
-
设置证书文件路径:
- 假设证书文件与批处理文件位于同一目录中,直接在
CERT_DIR后面添加文件名来设置CA_CERT和SERVER_CERT变量。
- 假设证书文件与批处理文件位于同一目录中,直接在
使用方法
-
保存证书文件:确保你的
ca.cer和drlg.b.cc.cer文件与install_certificates.bat文件放在同一个目录中。 -
创建并编辑批处理文件:将上述脚本复制到一个新的文本文件中,并将其命名为
install_certificates.bat。 -
运行批处理文件:
- 右键点击该文件,选择“以管理员身份运行”。
注意事项
- 权限:确保以管理员权限运行批处理文件,因为安装证书需要管理员权限。
- 私钥保护:不要在批处理文件中包含私钥文件路径,仅处理公钥证书。
- 中间证书:如果你的证书链中有中间证书,请确保也将这些中间证书导入到“中间证书颁发机构”存储中。
- 组策略部署:对于企业环境中的多台计算机,可以通过组策略对象 (GPO) 自动分发和安装证书。
通过这种方式,你可以确保批处理文件自动识别并使用当前目录中的证书文件,从而简化证书管理和部署过程。如果有任何问题或需要进一步定制,请根据实际情况调整脚本。