这两天在做apache的ssl认证,结合网上的资料和自己的实际,将步骤写在下面:
一、安装apache+openssl,这里不再说明,具体参照网络上的其他说明
二、在apache的安装目录下,新建一个目录用于存放CA等。
mkdir /usr/local/apache2/conf/ssl.crt
三、拷贝openssl安装目录下的misc下的CA到第二步建立的目录中
cp /usr/local/ssl/misc/CA /usr/local/apache2/conf/ssl.crt
如果有需要,自己可以修改CA的内容(openssl.cnf也要同样的修改 ),一般不用修改,
CATOP=/usr/local/CA <-----CA生成目录自定 CAKEY=/usr/local/CA/private/cakey.pem <-----CA密匙 生成目录自定 CACERT=/usr/local/CA/cacert.pem <-----CA证明书 生成目录自定 default_days=3650 <-----有效期限 |
四、生成CA密匙
./CA -newca ------------------------------------------------------------------------------ |
这样就建好了一个CA服务器,有了一个根证书的私钥cakey.pem及一张根证书cacert.pem
五、生成服务器私钥
openssl genrsa -des3 -out server.key 1024
六、生成服务器证书请求
openssl req -new -key server.key -out server.csr
这步会要求输入,输入信息,请按照第四部一样输入
七、apache启动时,要求输入密码解除
openssl rsa -in server.key -out server.key
八、把server.crt文件mv成newreq.pem
mv server.csr newreq.pem
九、用CA来签证
./CA -sign
这样就生成了server的证书newcert.pem
十、把newcert.pem改名成server.crt
mv newcert.pem server.crt
十一、如果需要客户端的,可以按照下面的要求生成客户端验证
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.crt
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
十二、这时就有了三张证书和三个私钥,一个是demoCA下的根证书,ssl.crt下的服务器证书和客户证书
cp demoCA/cacert.pem cacert.pem
cp cacert.pem ca.crt
十三、编辑ssl.conf
httpd.confの設定は以下の箇所です。
SSLEngine on <---SSL有效设置 SSLCertificateFile <---CA用服务端证明书(newcert.pem/server.crt) SSLCertificateKeyFile <---服务端密匙(server.key) SSLCertificateChainFile <---CA用证明书(cacert.pem) SSLCACertificatePath <---CA证明书路径 SSLCACertificateFile <---CA证明书(cacert.pem) SSLCARevocationPath <---客户端证明书路径 SSLCARevocationFile <---客户端证明书(clcert.pem) SSLVerifyClient require <---客户端认证是否需要 SSLVerifyClient 1 <---客户端认证方式 |
根据自己的需求,修改ssl.conf
关联参考:
http://www.rinzo2.jp/~rinzo/apache_ssl/apache_and_ssl_00.htm
http://www.ossforge.com/html/kaiyuanjishu/Linux_Unix/20071002/12767.html
http://www.yuanma.org/data/2006/0527/article_491.htm