在用
openssl
的过程中会有很厌烦的一件事情,就使须要不停的填入各种资料,是否能让这些自动填写呢,答案是肯定的。下边几个
shell
配合使用,就能完成任务,
shell
是我正在使用的,没有问题,不过可能有些东西是多余的,好在内容不多,很容易看明白:
<!---->
<o:p>
</o:p>
<o:p>
</o:p>
shell one:<o:p></o:p>
#!/bin/bash<o:p></o:p>
echo -n "input username:"<o:p></o:p>
read USERNAME<o:p></o:p>
#if [ -f bak/$USERNAME.pem ] || grep $USERNAME demoCA/newcerts -R 1>/dev/null 2>/dev/null ;then<o:p></o:p>
# echo "$USERNAME's cert has already been made,revoke(openssl ca -revoke $USERNAME.pem) and delete it first"<o:p></o:p>
# exit 1<o:p></o:p>
#fi<o:p></o:p>
echo -n "input password(length> 4):"<o:p></o:p>
read PASSWORD<o:p></o:p>
echo -n "input ca's password:"<o:p></o:p>
read CAPASS<o:p></o:p>
if [ -d bak ];then echo "bak dir exist"<o:p></o:p>
else mkdir bak<o:p></o:p>
fi<o:p></o:p>
mv -if /usr/share/ssl/misc/*.pem bak<o:p></o:p>
mv -if /usr/share/ssl/misc/*.req bak<o:p></o:p>
mv -if /usr/share/ssl/misc/*.key bak<o:p></o:p>
mv -if /usr/share/ssl/misc/*.p12 bak<o:p></o:p>
/usr/share/ssl/misc/auto $USERNAME $PASSWORD $CAPASS<o:p></o:p>
<o:p>
</o:p>
# make user dir<o:p></o:p>
if [ -d /opt/certs/$USERNAME ];then<o:p></o:p>
echo "ok"<o:p></o:p>
else<o:p></o:p>
mkdir -p /opt/certs/$USERNAME<o:p></o:p>
fi<o:p></o:p>
<o:p>
</o:p>
rm -rf /opt/certs/$USERNAME/* -rf<o:p></o:p>
<o:p>
</o:p>
#cp $USERNAME.key $USERNAME.p12 $USERNAME.pem /edi/pss/cert/now/server/ -rf<o:p></o:p>
cp $USERNAME.p12 /opt/certs/$USERNAME -rf<o:p></o:p>
if [ -f SYSTEM01.p7c ]; then<o:p></o:p>
cp SYSTEM01.p7c /opt/certs/$USERNAME -rf<o:p></o:p>
fi<o:p></o:p>
<o:p>
</o:p>
if [ -f bak/SYSTEM01.p7c ]; then<o:p></o:p>
cp bak/SYSTEM01.p7c /opt/certs/$USERNAME -rf<o:p></o:p>
fi<o:p></o:p>
./makep7c $USERNAME
<o:p>
</o:p>
<o:p>
</o:p>
<o:p>
</o:p>
shell two:
#!/usr/bin/expect
set user [lindex $argv 0]
set pass [lindex $argv 1]
set capass [lindex $argv 2]
#spawn ./CA -newreq
spawn openssl req -new -keyout $user.key -out $user.req
expect "Enter PEM pass phrase:"
send "$pass\n"
expect "Verifying - Enter PEM pass phrase:"
send "$pass\n"
expect "]:"
send "JP\n"
expect "]:"
send "\n"
expect "]:"
send "\n"
expect "]:"
send "WAVE\n"
expect "]:"
send "WAVE Center\n"
expect "]:"
send "$user\n"
expect "]:"
send "$user@linux3.niis.com.cn\n"
expect "]:"
send "$pass\n"
expect "]:"
send "$pass\n"
<o:p>
</o:p>
#exit
<o:p>
</o:p>
#spawn ./CA -sign
expect eof
spawn openssl ca -policy policy_anything -out $user.pem -infiles $user.req
expect "cakey.pem:"
send "$capass\n"
expect "y/n]:"
send "y\n"
expect "/n]"
send "y\n"
<o:p>
</o:p>
<o:p>
</o:p>
#p12
expect eof
spawn openssl pkcs12 -export -in $user.pem -inkey $user.key -out $user.p12 -passin pass:$pass -passout pass:$pass -certfile demoCA/cacert.pem
expect eof
exit
<o:p>
</o:p>
<o:p>
</o:p>
shell three:
#!/bin/bash
if test -z $1 ;then
echo "Please input username as arg0"
exit 1
fi
USER=$1
if [ -f ./$USER.pem ]; then
echo "ok,$USER's pem exist"
else
echo "$USER's pem file not exit!!!"
exit 0
fi
cat $USER.pem demoCA/cacert.pem >tmp$USER.pem
openssl crl2pkcs7 -certfile tmp$USER.pem -nocrl -out $USER.p7c -outform DER
if [ -f $USER.p7c ]; then
echo "OK,$USER.p7c made"
else
echo "error occur"
exit 1
fi
#rm tmp$USER.pem -rf<o:p></o:p>
分享到:
相关推荐
3. `zabbix_get.exe`: 用于从命令行获取远程或本地的特定信息,可以作为测试工具或集成到自动化流程中。 三、安装与部署 在Windows环境下,安装Zabbix Agent通常涉及以下步骤: 1. 解压下载的压缩包,包含上述的...
3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。...
《西门子SINUMERIK Run MyRobot-Direct Control 编程手册》是一份针对西门子自动化设备的专业操作指南,主要涵盖了SINUMERIK系统的机器人直接控制功能的编程与使用。手册旨在帮助用户深入理解和有效利用该系统进行...
3. **工作负载和自动化**:涉及Job、CronJob等控制器,用于管理一次性任务和定时任务,以及Horizontal Pod Autoscaler(HPA),实现自动扩缩容。 4. **自定义资源和API扩展**:介绍如何通过CRD(Custom Resource ...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。3、用途:项目具有较高的学习借鉴价值,不仅适用于...
2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
16. **单元测试与自动化测试**:JUnit和Espresso用于编写应用的单元测试,Robolectric用于模拟Android环境进行单元测试,MonkeyRunner和Appium支持自动化测试。 17. **热修复与插件化**:如Facebook的React Native...
通过与其他持续集成工具(如Jenkins)集成,可以实现自动化测试和构建过程。 8. **跨平台能力**: Delphi通过FMX(FireMonkey)框架,支持iOS、Android、macOS和Linux等多平台应用开发,使得开发者可以使用同一套...
2. Gradle:自动化构建系统,管理依赖关系和构建过程。 3. Logcat:日志输出工具,用于调试和故障排查。 4. Profiler:性能分析工具,包括内存、CPU、GPU和网络监控。 五、进阶话题 1. 插件化开发:实现模块化,...
- **自动化部署**:利用脚本或工具实现Zabbix的自动化部署。 - **监控策略设计**:根据业务需求制定合理的监控策略。 #### 七、进阶功能介绍 - **分布式监控**:如何设置多个Zabbix Proxy以支持大规模监控。 - **...
Android Studio内置了Gradle构建系统,用于自动化项目管理和依赖管理。开发者还需要配置Android SDK,它包含了各种版本的Android平台、开发工具和系统图像,用于模拟器或物理设备的测试。 在学习Android编程时,会...
还可以编写脚本来自动化这些调优过程,确保系统始终处于最佳状态。 总之,通过Nginx实现Tomcat和WebLogic集群的负载均衡,不仅可以提高系统的可用性和响应速度,还能有效应对高并发访问。结合合理的故障处理机制和...
PuTTY还可以与其他工具集成,如用 Expect 脚本自动化交互式任务,或者配合PuttyCM进行多窗口管理。 总结,PuTTY是一个强大且灵活的远程连接工具,适用于系统管理员、开发者和日常用户。掌握PuTTY的使用,不仅可以...
3. **物联网集成**:通过XMPP协议,Jabberd2可以作为智能家居、工业自动化等场景中的数据交换平台。 4. **游戏服务器**:游戏开发者可以利用Jabberd2实现实时游戏内的聊天和状态更新。 ### 五、进阶操作 1. **用户...
9. **Makefile**:理解Makefile的编写,以自动化编译、链接过程,提高开发效率。 10. **性能分析与优化**:学习使用perf、strace等工具分析程序性能,了解如何进行代码优化,包括算法优化和内存使用优化。 11. **...
**Buildroot**是一个自动化构建嵌入式Linux系统的工具。它可以帮助开发者快速构建一个完整的Linux发行版,包括交叉编译工具链、Linux内核、文件系统以及必要的库和应用程序。通过高度可配置的方式,Buildroot满足了...
sudo yum install -y gcc automake autoconf libtool make pkgconfig openssl-devel libuuid-devel curl-devel sqlite-devel uuid-devel speex-devel libavcodec-devel libavformat-devel libavutil-devel libogg-...