Apache 2.0上 HTTPS 实现CA认证, 不是HTPASSWD的那种.

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

每次总来CU找资料,想想也应该做点贡献. 呵呵. 这篇文章似乎没人做过.我就把它补上吧. 转载时注明来源是CU's 小黄就可以了. :D

系统 LINUX 8

用rpm -aq查一下是否这些装上

openssl095a-0.9.5a-16

openssl-devel-0.9.6b-29

mod_ssl-2.0.40-8

openssl-0.9.6b-29

openssl096-0.9.6-11

当然还有apache 2.0

openssl095a-0.9.5a-16

openssl-devel-0.9.6b-29

mod_ssl-2.0.40-8

openssl-0.9.6b-29

openssl096-0.9.6-11

第一步实现传统的http, 如果不知道,在精华贴里找.

第二步要实现https, 精华贴里也有,不过我重复一些这里:

主要是这个文件

/etc/httpd/conf.d/ssl.conf:

SSLCertficateFile /path/to/this/server.crt

SSLCertificateKeyFile /path/to/this/server.key

这两行要打开.

怎么产生server.crt 和 server.key, 用法如下:

cd /etc/httpd/conf/ssl.key

openssl genrsa -des3 -out server.key 1024

cd /etc/httpd/conf/ssl.crt

openssl x509 -req -days 3650 -in server.csr -signkey ../ssl.key/server.key –out server.crt

(这个是自己给自己认证,你也可以先产生这个server.csr, 然后去verisign 用它30天免费的server.crt

到此,你的HTTPS应该可以起来.如果看见一些错误.error 98 mod_socket之类的. 多数是httpd.conf 文件中, 要有Include conf.d/*.conf

Include conf.d/*.conf

而同时使用port 443, 与 /etc/httpd/conf.d/ssl.conf文件中port 443重复使用了. 基本上httpd.conf不用改,而只改ssl.conf就可以了. (折腾了我好一会这里,:-( )

现在你的https可以起来, 但人人可以去,我们最终的目的是只有你签发的certificate的用户才可以,所以接着走...

第三步https的CA认证:

ssl.conf 文件中要:

SSLCACertificateFile /etc/httpd/conf/ssl.crt/myca.crt

SSLVerifyClient require

SSLVerifyDepth 1

在 cd /etc/httpd/conf/ssl.crt/

openssl genrsa -des3 -out myca.key 1024

openssl req -new -x509 -days 3650 -key myca.key -out myca.crt

现在我们有了这个myca.crt, 这个CERT相当与一个图章,用这个图章盖过的请求才可以访问你的HTTPS, 这才是目的.

在你的机器上重新用普通用户登陆,假设用户名为client1, home为/home/client1.

cd /home/client1

openssl req –new > client.csr

用户产生了一个请求CSR文件. 用图章盖过印的CSR请求, 产生一个cert才有效,这就是这个目的.

重新用ROOT登陆,

cd /etc/httpd/conf/ssl.crt/

这下面应该有你刚才产生的myca.key & myca.crt

openssl x509 -req -in /home/client1/client.csr -out /home/client1/client.crt -signkey myca.key -CA myca.crt -CAkey myca.key -CAcreateserial -days 3650

在这个/home/client1下面,应该产生了client.crt 这个文件. 也就是一个盖过章的certificate.

这个certificate是BASE64形式的,要转成PKCS12才能装到IE,/NETSCAPE上.所以你要:

cd /etc/httpd/conf/ssl.crt/

openssl pkcs12 -export –in /home/client.crt -inkey myca.key -out client.pfx

到此为止,基本上大功告成. 把这个client.pfx 装到你的IE下,证书下.用default 安装,不用变革路经.

重起HTTPS, 在用有certificate的IE去访问. -------- 如果一切顺利,是不是心情很爽?

----写在后面的话.希望大家多写些心得, 把CU办的更好.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航