LDAPS服务在unix系统下的自启动

最近在Linux服务器上配置了一个LDAPS服务,结果碰到一个棘手的问题。由于OpenLDAP启动LDAPS服务之前,需要读取keystore私钥文件,而keystore私钥文件必须是密码保护的,因此每次启动这个服务必须要输入keystore的访问密码。另外一个方面,作为基础认证的LDAP服务又不允许在其他服务之后启动,如何让LDAPS服务自启动就成为一个需要解决的问题。
经过搜索,看上了expect软件包。关于这个包的功能,网上介绍的太多了,这里就不赘述了。
下面列出解决方法。

下载安装expect 软件包

expect-devel-5.43.0-5.1
expect-5.43.0-5.1
expectk-5.43.0-5.1
expect-5.43.0-5.1
expect-devel-5.43.0-5.1

改动启动脚本

# vi /etc/init.d/ldap

...
                cat >> $wrapper <<- EOF
#!/usr/bin/expect
#第一行一定要顶格写,以确保系统将expect作为shell执行wrapper
                spawn ${slapd} -h "$harg" -u ${user} $OPTIONS $SLAPD_OPTIONS
#用spawn启动slapd,接管其标准输入
                expect "Enter PEM pass phrase:"
# 等待slapd提示输入密码
                send "password\n"
#输入密码
                interact
#回到常规状态
                EOF


你可能感兴趣的:(expect,openLdap,startup,automatic,LDAPs)