`
dreamstone
  • 浏览: 288539 次
  • 来自: ...
文章分类
社区版块
存档分类

openssl 进阶(自动化)

阅读更多

在用 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>

分享到:
评论

相关推荐

    zabbix_agent-6.0.3-windows-i386-openssl

    3. `zabbix_get.exe`: 用于从命令行获取远程或本地的特定信息,可以作为测试工具或集成到自动化流程中。 三、安装与部署 在Windows环境下,安装Zabbix Agent通常涉及以下步骤: 1. 解压下载的压缩包,包含上述的...

    课程设计 基于C++ openssl+tcp通信实现的安全数据传输协议+设计报告源码+详细说明+全部数据资料 高分项目.zip

    3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。...

    SIEMENS西门子SINUMERIK Run MyRobot-Direct Control 编程手册.pdf

    《西门子SINUMERIK Run MyRobot-Direct Control 编程手册》是一份针对西门子自动化设备的专业操作指南,主要涵盖了SINUMERIK系统的机器人直接控制功能的编程与使用。手册旨在帮助用户深入理解和有效利用该系统进行...

    kubernetes-in-action-master.zip

    3. **工作负载和自动化**:涉及Job、CronJob等控制器,用于管理一次性任务和定时任务,以及Horizontal Pod Autoscaler(HPA),实现自动扩缩容。 4. **自定义资源和API扩展**:介绍如何通过CRD(Custom Resource ...

    基于virtualBox,python,windows platform sdk等编写的安卓模拟器+源代码+文档说明

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    基于Django+layui实现的轻量级cmdb管理系统源码+使用说明.zip

    2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。3、用途:项目具有较高的学习借鉴价值,不仅适用于...

    基于golang的直播平台项目源码+项目说明.zip

    2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于...

    《编程日历》的Python实现版本,基于OpenHappyHackingCalendar项目改编+源代码+文档说明

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    Android系统原理与开发要点详解_培训课件.zip

    16. **单元测试与自动化测试**:JUnit和Espresso用于编写应用的单元测试,Robolectric用于模拟Android环境进行单元测试,MonkeyRunner和Appium支持自动化测试。 17. **热修复与插件化**:如Facebook的React Native...

    Delphi.rar

    通过与其他持续集成工具(如Jenkins)集成,可以实现自动化测试和构建过程。 8. **跨平台能力**: Delphi通过FMX(FireMonkey)框架,支持iOS、Android、macOS和Linux等多平台应用开发,使得开发者可以使用同一套...

    Android--开发--系统原理与开发要点详解_培训课件.rar

    2. Gradle:自动化构建系统,管理依赖关系和构建过程。 3. Logcat:日志输出工具,用于调试和故障排查。 4. Profiler:性能分析工具,包括内存、CPU、GPU和网络监控。 五、进阶话题 1. 插件化开发:实现模块化,...

    Zabbix安装部署手册.docx

    - **自动化部署**:利用脚本或工具实现Zabbix的自动化部署。 - **监控策略设计**:根据业务需求制定合理的监控策略。 #### 七、进阶功能介绍 - **分布式监控**:如何设置多个Zabbix Proxy以支持大规模监控。 - **...

    Android开发揭秘

    Android Studio内置了Gradle构建系统,用于自动化项目管理和依赖管理。开发者还需要配置Android SDK,它包含了各种版本的Android平台、开发工具和系统图像,用于模拟器或物理设备的测试。 在学习Android编程时,会...

    Nginx实现tomcat与weblogic集群的负载均衡及故障处理

    还可以编写脚本来自动化这些调优过程,确保系统始终处于最佳状态。 总之,通过Nginx实现Tomcat和WebLogic集群的负载均衡,不仅可以提高系统的可用性和响应速度,还能有效应对高并发访问。结合合理的故障处理机制和...

    putty-test putty-test

    PuTTY还可以与其他工具集成,如用 Expect 脚本自动化交互式任务,或者配合PuttyCM进行多窗口管理。 总结,PuTTY是一个强大且灵活的远程连接工具,适用于系统管理员、开发者和日常用户。掌握PuTTY的使用,不仅可以...

    xmpp服务器jabberd2

    3. **物联网集成**:通过XMPP协议,Jabberd2可以作为智能家居、工业自动化等场景中的数据交换平台。 4. **游戏服务器**:游戏开发者可以利用Jabberd2实现实时游戏内的聊天和状态更新。 ### 五、进阶操作 1. **用户...

    Linux C高级程序员指南_

    9. **Makefile**:理解Makefile的编写,以自动化编译、链接过程,提高开发效率。 10. **性能分析与优化**:学习使用perf、strace等工具分析程序性能,了解如何进行代码优化,包括算法优化和内存使用优化。 11. **...

    Buildroot中文用户手册

    **Buildroot**是一个自动化构建嵌入式Linux系统的工具。它可以帮助开发者快速构建一个完整的Linux发行版,包括交叉编译工具链、Linux内核、文件系统以及必要的库和应用程序。通过高度可配置的方式,Buildroot满足了...

    freeswitch-1.10.2.-release.tar.gz

    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-...

Global site tag (gtag.js) - Google Analytics