假设需要使用ssl的服务;
制作签署证书的CA;
在对应服务主目录下生成密钥、签发请求;
签发证书;
____________________________________________
架设服务
(略)
作CA
vi /etc/pki/tls/openssl.conf
openssl genrsa 1024 > cakey.pem
chmod 600 cakey.pem
cp cakey.pem /etc/pki/CA/private/cakey.pem
openssl req -new -x509 -key cakey.pem -out CA.crt -days 36500
cp CA.crt /etc/pki/CA/cacert.pem
touch /etc/pki/CA/index.txt
touch /etc/pki/CA/serial
echo 01 >> /etc/pki/CA/serial
cd /etc/pki/CA
mkdir crl certs newcerts
生成密钥、生成签发请求
openssl genrsa 1024 > ftps.key
openssl genrsa 1024 > https.key
openssl genrsa 1024 > imaps.key
openssl genrsa 1024 > pop3s.key
openssl genrsa 1024 > smtps.key
openssl req -new -key ftps.key -out ftps.csr
openssl req -new -key https.key -out https.csr
openssl req -new -key imaps.key -out imaps.csr
openssl req -new -key pop3s.key -out pop3s.csr
openssl req -new -key smtps.key -out smtps.csr
签发证书
openssl ca -in ftps.csr -out ftps.crt
openssl ca -in https.csr -out https.crt
openssl ca -in imaps.csr -out imaps.crt
openssl ca -in pop3s.csr -out pop3s.crt
openssl ca -in smtps.csr -out smtps.crt
ls *.crt
cat *.crt
Old
# apt-get install openssl (debian)
# yum install openssl (centos)
# emerge openssl (gentoo)
# cd openssl-1.0.1e
# ./configure --prefix=/usr/local/openssl
# cd /usr/local/openssl
# find . -name CA*
# ln /usr/loca..../CA.sh /sbin/ca
# chmod 755 /sbin/ca
================================
生成密钥(rsa 密钥)
生成非对称密码对之私钥
# openssl genrsa -out server.key
生成私钥的公钥
# openssl rsa -in server.key -pubout -out server.pub
查看私钥
# openssl rsa -in server.key
查看公钥
# openssl rsa -in server.key -pubout
使用已创建的RSA密钥文件创建一个自签名的X509证书
# openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt
生成证书
# openssl genrsa -out hhh.key
生成密钥
# openssl req -new -key hhh.key -out hhh.csr
生成证书
“证书签署请求CSR”
# openssl ca -in client.csr -out client.crt
签发证书
# openssl x509 -req -days 365 -in hhh.csr -signkey hhh.key -out hhh.crt
生成x509自签名证书
翻译来自:
http://www.openssl.org/docs/HOWTO/
----------------------------密钥----------------------------
密钥,成对出现,一个私钥、一个公钥。私钥包含公钥信息,因此没有必要单独创建对应的公钥。创建证书最流行的算法是 RSA & DSA。
创建 RSA 密钥;用途:加密、签名
# openssl genrsa -des3 -out privkey.pem 2048
如果需要去掉密码加密,去掉选项 “-des3”。
# openssl rsa -in privkey.pem
# openssl rsa -in privkey.pem -pubout
创建 DSA 密钥;用途:仅仅用来签名
DSA 加密算法的密钥创建分两步:生成一个参数,依据该参数生成密钥。
# openssl dsaparam -out dsaparam.pem 2048
# openssl gendsa -des3 -out privkey.pem dsaparam.pem
可以使用同一参数文件,创建多个密钥
# openssl dsa -in privkey.pem
# openssl dsa -in privkey.pem -pubout
----------------------------证书----------------------------
得到一个证书,跟配置文件有着一定关系。要是不同的配置文件可以使用选项 “-config {file}”。证书是跟一个公钥相关联的。
创建“认证请求”
认证请求用来发送给某个认证机构去签名为证书。要不,就是自己拥有一个认证机构,自己完成签名。或者直接创建一个自签名证书,用于实验目的。
# openssl req -new -key privkey.pem -out cert.csr
# openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
* 依据不同的应用,可能需要转换私钥和证书的格式。或者需要把私钥和证书和为一体。(证书格式:DER PEM)