设为首页 收藏本站
查看: 645|回复: 0

[经验分享] 创建私有CA及dropbear的编译安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-26 10:22:26 | 显示全部楼层 |阅读模式
使用openssl创建私有CA
配置文件/etc/pki/tls/openssl.cnf
certs           = $dir/certs            # Where the issued certs are kept  已经证书存放目录
crl_dir         = $dir/crl              # Where the issued crl are kept  吊销证书列表存放目录
database        = $dir/index.txt        # database index file.  颁发过证书的索引(数据文件)
#unique_subject = no                    # Set to 'no' to allow creation of
                                        # several ctificates with same subject.
new_certs_dir   = $dir/newcerts         # default place for new certs.   创建新证书存放目录

certificate     = $dir/cacert.pem       # The CA certificate  CA的自签证书
serial          = $dir/serial           # The current serial number  当前证书的编号
crlnumber       = $dir/crlnumber        # the current crl number   吊销证书编号
                                        # must be commented out to leave a V1 CRL
crl             = $dir/crl.pem          # The current CRL  当前吊销的证书
private_key     = $dir/private/cakey.pem# The private key    CA的私钥
RANDFILE        = $dir/private/.rand    # private random number file
default_days    = 365                           # how long to certify for   默认证书有效期一年
default_crl_days= 30                          # how long before next CRL   默认crl有效期为30天
default_md      = sha256           # use SHA-256 by default     使用sha256算法
服务器端:
1、  生成秘钥对
(umask 077 ;openssl genrsa –out private/cakey.pem 2048)
将生成的秘钥权限设置为600的权限,仅属主能访问,并且生成2048位的秘钥
如果想查看公钥可以使用如下指令
openssl rsa -key private/cakey.pem -pubout -out key
1474687371329209.jpg

2、  生成自签证书
opensl req -new –x509 -key private/cakey.pem -out cacert.pem -days 3655
生成自签证书此时自己就是证书的颁发机构,并且证书的有效期为10年,在生成证书的时候需要填写国家,州或省份,城市,公司名,组织名等等信息,这里默认要求国家省份和组织名要求和CA的一样,如果有用户请求前三项不一样时,可以修改openssl.cnf配置文件将下面的前三项修改optional值即可,这时就不需要要求一致了
[ policy_match ]
countryName             = match
stateOrProvinceName      = match
organizationName    = match
organizationalUnitName  = optional
commonName           = supplied
emailAddress             = optional
    1474687411761640.jpg
    3、在完成自签证书之后需要创建存放证书数据文件、证书编号文件和证书吊销列表文件,并给出serial的值为01
touch index.txt  serial  crlnumber
echo 01 > serial

客户端
假如我这里为httpd服务颁发证书,这时候需要在主机上生成秘钥,保存至应用此证书的服务的配置文件目录下,比如我将证书放在/etc/httpd/ssl下
mkdir  /etc/httpd/ssl
cd /etc/httpd/ssl
(umask 077; openssl genrsa -out httpd.key 1024)  生成秘钥
openssl req -new -key httpd.key -out httpd.csr 生成证书签署请求
    1474687478766511.jpg

    1474687489192343.jpg

将文件发往CA服务
scp httpd.csr  root@10.1.252.100:/root


CA服务器签署证书
openssl  ca  -in /root/httpd.csr  -out httpd.crt -days 365
    1474687514219193.jpg

查看生成的证书
openssl x509 -in  httpd.crt -pubout -text|subject|serial|date
1474687554909457.jpg
将生成好的证书发往客户端
scp httpd.crt root@10.1.252.101:/etc/httpd/ssl


吊销证书
如果此时证书不想用了,或者被别人给盗用了,这时候需要吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/01.pem
生成吊销证书的编号(第一次吊销一个证书时才需要执行)
echo 01> /etc/pki/CA/crlnumber
更新证书吊销列表
openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl
查看crl文件
openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text


编译安装dropbear
1、  准备编译安装环境
yum -y groupinstall  “Development Tools”
2、  到官网下载源码包
https://matt.ucc.asn.au/dropbear/dropbear.html
3、  解压源码包
tar xf dropbear-2013.58  
cd dropbear-2013.58

4、  开始编译安装,还是老三步(./configure  make  make install)
通过查看INSTALL编译安装步骤来进行编译安装
./configure   生成makefile文件
make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"  这里编译安装的工具是可选的,可以根据需求进行取舍,我这里全部都装上
make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"   install   将生成的文件复制到指定的目录下第一个是服务端工具,其他都是客户端工具
1474687605465830.jpg

5、  生成秘钥,利用编译生成的工具dropbearkey工具来生成秘钥
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
1474687644787406.jpg
6、  启动服务,在我们系统当中默认的ssh服务使用了22端口,所以在启动时使用其他的端口进行启动dropbear服务
dropbear -p 22033  -F    在前台运行
使用ss –tan 查看22022端口是否已经监听


7、  测试利用客户端工具dbclient进行访问本地回环地址
dbclient –p 22022 root@127.0.0.1
1474687657468312.jpg


最后提供一个服务脚本,就可以用service命令来管理了,脚本内容如下
#!/bin/bash
#
#description: dropbear ssh daemon
#chkconfig: 2345 66 33
#
dsskey=/etc/dropbear/dropbear_dss_host_key
rsakey=/etc/dropbear/dropbear_rsa_host_key
pidfile=/var/run/dropbear.pid
lockfile=/var/lock/subsys/dropbear
dropbear=/usr/local/sbin/dropbear
dropbearkey=/usr/local/bin/dropbearkey
[ -r    /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions
[ -r /etc/sysconfig/dropbear ] && . /etc/sysconfig/dropbear
key
size=${keysize:-1024}
port=${prot:-22022}
gendsskey() {
           [  -d /etc/dropbear]||mkdir /etc/dropbear
echo -n "Starting genrate the dss key:"
                   $dropbearkey -t dss -f $dsskey
         RETVAL=$?
                    echo
if [ $RETVAL -eq 0 ];then
                    success
                             echo
                    return 0
else
           failure
                    return 1
fi
}
genrsakey() {
           [ ! -d /etc/dropbear]||mkdir /etc/dropbear
           echo -n "Starting genrate the dss key:"
                   $dropbearkey -t rsa -s $keysize  -f $rsakey
           RETVAL=$?
                    echo        
if [ $RETVAL -eq 0 ];then
                    success
                    echo
                    return 0
else
           failure
                             echo
                    return 1
fi
}         
start()  {
[ -e $dsskey ] ||gendsskey
           [ -e $rsakey ] || genrsakey
if
[  -e  $lockfile  ] ;then
           echo -n "dropbear daemon is already running."
                    success
           echo
                    exit 0
fi
echo -n "starting dropbear: "
           daemon   --pidfile="$pidfile"  
$dropbear -p $port -d $dsskey -r $rsakey
                             RETVAL=$?
                    echo
if [ $RETVAL -eq 0 ];then
                    touch $lockfile
                    return 0
           else
                    rm -rf $lockfile $pidfile
           return 1
fi
}
stop() {
if  [  !  -e $lockfile ] ;then
           echo -n "dropbear service is stoped"
success
echo
           exit 1
fi
           echo -n "stopping dropbear daemon:"
           killproc dropbear
           RETVAL=$?
           echo
if [ $RETVAL -eq 0 ] ;then
           rm -rf $lockfile $pidfile
           return 0
else
           return 1
fi
}
    status() {
if [ -e $lockfile ] ;then
echo "dropbear is running "
else
echo "dropbear is stoped.."
fi
}
    usage() {
echo "Usage:dropbear {start|stop|restart|status|genrsakey|gendsskey}"
}
case $1 in
    start)
     start ;;
    stop)
     stop
    ;;
    restart)
     stop
     start
     ;;

    status)
     status
     ;;
    genrsakey)
     genrsakey
     ;;
    gendsskey)
     gendsskey
     ;;
    *)
     usage
     ;;
    esac

将此脚本复制到/etc/init.d      目录下,并给文件添加执行权限
chkconfig –add dropbear  将dropbear加到服务列表中去,此时就可以使用service命令来管理服务了





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-277629-1-1.html 上篇帖子: openssl创建CA、申请证书及其给web服务颁发证书 下篇帖子: Linux进程与计划任务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表