创建私有CA及dropbear的编译安装

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

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

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 生成证书签署请求

将文件发往CA服务

scp httpd.csr  [email protected]:/root

CA服务器签署证书

openssl  ca  -in /root/httpd.csr  -out httpd.crt -days 365

查看生成的证书

openssl x509 -in  httpd.crt -pubout -text|subject|serial|date

将生成好的证书发往客户端

scp httpd.crt [email protected]:/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   将生成的文件复制到指定的目录下第一个是服务端工具,其他都是客户端工具

5、  生成秘钥,利用编译生成的工具dropbearkey工具来生成秘钥

dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key

dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

6、  启动服务,在我们系统当中默认的ssh服务使用了22端口,所以在启动时使用其他的端口进行启动dropbear服务

dropbear -p 22033  -F    在前台运行

使用ss –tan 查看22022端口是否已经监听

7、  测试利用客户端工具dbclient进行访问本地回环地址

dbclient –p 22022 [email protected]

最后提供一个服务脚本,就可以用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命令来管理服务了

时间: 2024-11-12 10:51:07

创建私有CA及dropbear的编译安装的相关文章

Linux学习笔记—— 基于CentOS创建私有CA及应用

这篇文章应该是有史以来,历时最长最纠结的一次,毫不夸张的讲总结到词穷的地步了.现在每次一到理论知识梳理的过程,总有种茶壶里的饺子,稍微懂点但有说不出来,哎!这辈子估计当不了老师了,话不多说还得撸起袖子接着写不是. 第一章.详细描述一次加密通讯的过程,结合图示最佳. HTTPS在基于SSL建立会话前,会经历4次握手过程以获取会话密钥.流程如下: 图示1 HTTPs 通讯流程详细说明 1. 客户端请求(ClientHello) 客户端向服务器发送会话请求,这一步称为ClientHello.Clien

openssh及openssl创建私有CA

ssh:secure shell,protocol ,监听TCP22,提供安全的远程登陆服务 OpenSSH:ssh协议的开源实现 dropbear:另一个开源实现 SSH协议版本: V1:基于CRC-32做MAC(消息认证码),不安全:容易受man-in-middle攻击 v2:双方主机协议选择安全的MAC方式 基于DH算法做秘钥交换,基于RSA或DSA算法实现身份认证 两种方式的用户登录认证: 口令:基于Passwd 基于KEY OpenSSH: C/S C:ssh,scp,sftp win

在企业内部使用openssl创建私有CA

随着计算机技术的发展,信息网络技术的应用日益深入,这些应用改进了企业工作方式,提高了工作效率.而如何确保在网络中传输的身份认证.机密性.完整性.合法性.不可抵赖性等问题成为企业进一步发展和推动企业信息化应用的关键.要解决这些问题,需要用到CA认证功能.而当企业的应用仅仅在企业内部实现时,我们只需要在企业内部自建CA服务器,完成认证功能,而无需采用第三方机构提供的CA,在总体上节省成本. 使用openssl可以实现企业内部自建CA,首先我们需要安装openssl 软件包,利用openssl创建CA

使用OpenSSL创建私有CA

使用OpenSSL创建私有CA 首先确认安装了openssl和openssl-libs [[email protected] ~]# rpm -qa | grep openssl openssl-libs-1.0.1e-42.el7.x86_64 openssl-1.0.1e-42.el7.x86_64 配置文件/etc/pki/tls/openssl.cnf是ini风格的,其中比较常用的配置就是CA自身的配置和req发证请求相关的配置.配置文件中各配置项的作用描述得很详细了,没必要逐项解释,需

openssl工具的使用以及创建私有CA

openssl软件包在安装之后,主要会生成三段重要内容:加密库 ssl相关库文件 openssl命令行工具 下面就来介绍一下openssl命令行工具的使用: openssl和yum类似,有着许许多多的子命令: 如果要获得这些子命令的相关man文档,先使用whatis查看一下确定使用man的格式语法 其中常用的子命令有: 1.enc:实现对称加密,解密的命令 使用格式:openssl enc ciphername -a [-e] [-salt] -in filename -out filename

OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开https

https http over ssl = https 443/tcp                ssl: v3                tls: v1 https:// SSL会话的简化过程                (1) 客户端发送可供选择的加密方式,并向服务器请求证书:                (2) 服务器端发送证书以及选定的加密方式给客户端:                (3) 客户端取得证书并进行证书验正:                    如果信任给其发

OpenSSL:实现创建私有CA、签署证书请求详解

一.OpenSSL:CA默认配置信息 1.证书签发机构CA:公共信任CA.私有CA 建立私有CA方式如下: 小范围测试使用openssl. 大范围维护大量证书企业使用OpenCA(对openssl进行了二次封装,更加方便使用) 2.openssl 配置文件:/etc/pki/tls/openssl.cnf [[email protected] tmp]# cat  /etc/pki/tls/openssl.cnf 该配置文件中以 "[配置段]",的形式配置相关信息 ==========

ssl协议相关总结和创建私有CA过程

数据安全的相关术语: NIST规定安全协议的应该具备的特性: 保密性: 数据保密性 隐私性 完整性: 数据完整性 系统完整性 可用性: 安全攻击: 被动攻击:窃听 主动攻击:伪装.重放.消息篡改.拒绝服务 安全机制: 加密.数字签名.访问控制.数据完整性.认证交换.流量填充.路由控制.公证 安全服务: 认证. 访问控制. 数据保密性. 链接保密性 无连接保密性 选择域保密性 流量保密性 数据完整性 不可否认性 密码算法和协议: 对称加密 公钥加密 单向加密 认证加密 所谓的数字签名就是事先用单向

OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

一.OpenSSH OpenSSH与SSH协议是远程登录的首选连接工具.它加密所有流量,以消除窃听,连接劫持和其它攻击.OpenSSH常常被误认以为与OpenSSL有关系,但实际上这两个项目的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件. OpenSSH的套件包括以下工具: 远程操作使用 SSH, SCP,和 SFTP. 密钥管理 ssh-add, ssh-keysign, ssh-keyscan和ssh-keygen 服务端组成 ssh