23
Feb

apache+mod_ssl中证书生成方法


版权声明:可以在网上任意转载,转载时请务必以超链接形式标明文章原始出处、作者信息及本声明文字。
作者:shunz,出处:http://shunz.net/2007/02/apache-mod_ssl.html

为配置一个安全连接,必须要给mod_ssl设置一个安全证书,CentOS默认提供一套证书,但是使用的时候每次都会提示证书签名的域名不正确,于是想弄一套自己的证书,google了很久,很多方法都有问题,最终从这里找到了合适的方法。

首先生成证书请求:

#openssl req -new > server.csr

按照提示输入相关信息后,会在当前目录自动生成server.csr和privkey.pem两个文件,privkey.pem是私钥文件,默认会有passphrase,如果不移除的话,每次运行apache的时候都会提示输入passphrase,所以如果服务器重启后如果你不在服务器前面,则apache无法正常运行。

所以,第二步需要移除passphrase:

#openssl rsa -in privkey.pem -out server.key

这一步会让你输入前面设定的passphrase,所以在前面的时候不要胡乱设定一个passphrase哈。

第三步,生成服务器证书:

#openssl req -x509 -days 3650 -key server.key -in server.csr > server.crt

days参数是指定证书有效期的,3650是10 年,够长的了吧?
最后,在httpd.conf里的相应域名配置里加上:

SSLCertificateFile /etc/httpd/conf/key/server.crt
SSLCertificateKeyFile /etc/httpd/conf/key/server.key

然后重启apache即可。

====

UPDATE:

还有一种方法,先按照指定算法生成密钥:

#openssl genrsa -des3 1024 -new > server.old.key

然后移除passphrase:

#openssl rsa -in server.old.key -out server.key

然后生成证书请求:

#openssl req -new -key server.key > server.csr

最后生成证书:

#openssl req -x509 -days 3650 -key server.key -in server.csr > server.crt

5 条评论了已经

发表评论

名字(必须)
邮箱(不会被公布)(必须)
网址

字体为 粗体 是必填项目,邮箱地址 永远不会 公布。

允许部分 HTML 代码:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URIs must be fully qualified (eg: http://shunz.net/) and all tags must be properly closed.

超出部分系统将会自动分段及换行。

请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 may 会被编辑或删除。

    关于

      我,shunz,在这里默默记录自己的所学所思以及所关注的事情...
      Blog del.icio.us Flickr Furl Gmail/Google Talk Google Reader Google Shared Stuff Picasa Web Albums Twitter YouTube Zooomr douban

    订阅

    页面

    广告

    分类