openssl 安全设置

这两天在做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 cretificate filename (or enter tocreate)  <---文件名指定,默认就行了,直接enter

Enter PEM pass phrase:  <--证明书的密码设置
Verifying - Enter PEM pass phrase:  <---再次确认输入
Country Name (2 letter code) [AU]:  <---国名输入
State or Province Name (full name) [Some-State]:  <---省市县区输入
Location Name(eg,city) []:  <---具体的地址输入,比如那个楼什么的
Orgnaization Name(eg,company)[Internet Widgits Pty Ltd]:  <---组织名输入
Orgnaization Unit Name(eg,section)[]:  <---不署名输入
Common Name (eg,YOUR name)[]:  <---服务器的host名(FQDN)指定
Email Address []:  <---联络mail地址输入

 

这样就建好了一个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

阅读更多

没有更多推荐了,返回首页