作者: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 会被编辑或删除。













我想知道,证书安装后,别人访问你的HTTPS时,浏览器会不会有提示你的证书不是浏览器默认信任的机构颁发的证书,好像如果要浏览器信任认证机构颁发的证书是需要付费认证的吧?
我的Dreamhost的帐号下有一个IP是可以安装证书的,但不知道去哪里购买证书。
会提示不是信任的机构颁发的,如果要是信任机构颁发的证书,费用是非常高的,不适合个人使用,我记得verisign的认证是一年6000吧。对于个人来说,我上面说到的自定义个人证书就足够用了,毕竟咱们使用证书加密是为了加密传输,而不是为了证明你的站点是某一个权威机构。
你好,从V2EX来到你这儿,希望与你交换个博客链接(你的已做好)
LUSIN
http://www.lusin.cn/blog/
好运!
不错。
多谢,收藏。