为配置一个安全连接,必须要给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.crtSSLCertificateKeyFile /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 Technorati Tags: apache, Certificate, mod ssl, openssl, ssl |