博客 2016-01-26

简介:

https 握手的过程,证书的颁发,下面一一讲来。

原理如下图,服务器与客户端的证书都是对等的


ssl.png


证书生成步骤:

第一步:

服务器生成自己的CA主证书

第二步:

生成服务器端证书

第三步:

用服务器生成的CA主证书,给服务器证书签证

第四步:(如果客户端是另外一台服务器,也需要)

把CA 证书放到OS的证书库里面


具体实现: 

生成根密钥:

cd /etc/pki/CA/

touch ./{serial,index.txt}

echo "00" > serial

openssl  genrsa -out private/cakey.pem 2048

 

生成主证书:

openssl  req -new -x509 -key private/cakey.pem -days 3650 -out cacert.pem

 

 

生成nginx key与证书:

cd /etc/ssl/

 openssl genrsa -out nginx.key 2048

  openssl  req -new -key nginx.key -out nginx.csr

  

用主证书签发生成nginx 证书


openssl ca -in nginx.csr -days 3650 -out nginx.crt

 

 

cp /etc/pki/tls/certs/ca-bundle.crt{,.bak} 

cat /etc/pki/CA/cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt  #因为是自签的证书,此步骤的意义在于让系统接受该证书

 

快速给nginx/apache生成证书:

1.openssl

 

wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz

tar xzf openssl-1.0*.tar.gz

cd openssl*

./config --prefix=/usr/local/openssl

make && make install

 

2.创建主证书

mkdir /usr/local/nginx/conf/ssl

cp /usr/local/openssl/ssl/misc/CA.sh     /usr/local/nginx/conf/ssl

 

 ./CA.sh -newca   //建立主证书  安装成功的话,会在ssl目录下面产生一个文件夹demoCA

 

 

3.生成服务器私钥和服务器证书

openssl genrsa -des3 -out server.key 1024    

//产生服务器私钥  

 openssl req -new -key server.key -out server.csr  

    //生成服务器证书  

 

cp server.csr newseq.pem

./CA.sh -sign     //为服务器证书签名  

cp newcert.pem server.crt

 

4.,产生客户端证书(选 做)

生成客户私钥:

openssl genrsa -des3 -out client.key 1024

生成客户证书

openssl req -new -key client.key -out client.csr

签证:

openssl ca -in client.csr -out client.crt

转换成pkcs12格式,为客户端安装所用

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

这一步根安装服务器的证书差不多,不同的是签证,最后安装的时候,client.pfx的密码要记住,在客户端安装的时候要用到的。

[root@BlackGhost ssl]# openssl pkcs12 -export -clcerts   -in client.crt -inkey client.key -out client.pfx

Enter pass phrase for client.key:

Enter Export Password:

Verifying - Enter Export Password:

客户端和服务器端都可以使用服务器端证书,所以这一步不做也行。

 

5.集中所以证书和私私钥到一起

#cp demoCA/cacert.pem cacert.pem

同时复制一份证书,更名为ca.crt

#cp cacert.pem ca.crt

 

6.apache/ngnix 配置

7.安装客户端证书

把ca.crt和client.pfx  copy到客户端,双击client.pfx就会进入证书的安装向导,下一步就行了,中间会让你输入密码

 

参考资料: