在用
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>
分享到:
相关推荐
mac命令行下全自动编译libcurl.a库(support SSL)供ios开发用!zip包含ios-build-libcurl.sh、ios-build-openSSL.sh、Readme.txt三个文件!由于缺积分,所以资源分要的比较高,分多的就施舍点、分不够的又急需用的...
出现以下报错,替换/usr/local/include/openssl里面的文件之后编译成功。add_assoc_name_entry’:/data/src/php-5.6.23/ext/openssl/openssl.c:664: warning: ‘ASN1_STRING_data’ is deprecated (declared at /usr...
openssl-1.0.2u + openssl-1.0.2k的rpm包
用openSSL工具生成密钥使用说明: 安装后进入OpenSSL工具,输入如下命令: • Linux用户(以Ubuntu为例): $ openssl 进入OpenSSL程序 OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私钥 OpenSSL> pkcs8 -...
安装openssl和openssl-develd 的依赖包,解决nginx https代理等问题
物流物流中心自动化立体仓库管理系统的设计与实现
OpenResty或nginx安装依赖的openssl离线安装依赖库。当无法使用yum等联网安装命令时
openssl 的一套sdk 特别好用
Windows x64 的 Openssl 1.1.1 安装包msi OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 OpenSSL被曝出现严重安全...
Windows平台OpenSSl_64位安装包,需配环境变量,可用于android系统签名文件生成JKS文件。...如果提示无法打开openssl配置文件:设置一下配置文件:set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl.cfg
Python自动化测试的一些常用包,基于Python3.6,基本都是最新版本的。OpenSSL、paramiko、pymysql、requests、tempest、robotframework、openpyxl
openssl rpm包 openssl-1.1.1o-1.el7.x86_64.rpm openssl-1.1.1o openssl
OpenSSL3.0.12
openssl-1.0.2n-2.58.1.x86_64.rpm,libopenssl1_0_0-1.0.2n-2.58.1.x86_64.rpm,libopenssl-devel-1.0.2n-2.58.1.x86_64.rpm,libopenssl-devel-64bit-1.0.2j-10.1.aarch64_ilp32.rpm
openssl
openssl-0.9.8k_WIN32 vc++
OpenSSL也实现了TLSv1.0,TLS是SSLv3的标准化版,虽然区别不大,但毕竟有很多细节不尽相同。 虽然已经有众多的软件实现了OpenSSL的功能,但是OpenSSL里面实现的SSL协议能够让我们对SSL协议有一个更加清楚的认识,...
OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。OpenSSL的官方网站为http://www.openssl.org/,源代码可以从ftp://ftp.openssl.org/source/上下载,也可以从OpenSSL...
OpenSSL3.0.0 msvc2019 x64和x86 静态编译
适用于Android的OpenSSL脚本和二进制文件(适用于Qt Android应用),以下目录可用 Qt-5.12.3:用于Qt 5.12.3及以下版本。 Qt-5.12.4_5.13.0:它具有OpenSSL 1.1.x,只能与Qt 5.12.4和5.13.0一起使用。请注意,在...