HTTPS是一个安全的访问方式,数据在传输过程中是加密的,HTTPS基于SSL加密。
一:安装apache模块和ssl模块。
yum install httpd httpd-devel mod_ssl
安装完成mod_ssl后会创建一个默认ssl证书,存放路径为/etc/pki/tls
SSL的配置文件存放在HTTP配置目录下的conf.d/ssl.conf
二:使用openssl手动创建证书
yum install openssl openssl-devel
cd /etc/pki/tls
1.生成私钥:
openssl genrsa -out server.key 2048
2.用私钥生成证书请求文件
openssl req -new -key server.key -out server.csr
此时需要你输入一些信息:(某些认证机构可能默认不支持中文,所以建议写相对应的英文)
Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:shanghai Locality Name (eg, city) [Default City]:shanghai Organization Name (eg, company) [Default Company Ltd]:ccc Organizational Unit Name (eg, section) []:bbb Common Name (eg, your name or your server's hostname) []:www.test.com Email Address []:[email protected]
随后会让输入一个密码,从这里开始可以都不输入,回车跳过
3.如果是需要提交给认证机构,就把server.key和server.csr提交即可,注意一定要保留server.key
4.手动生成crt文件
openssl x509 -days 365 -req -in server.csr -signkey server.key -out server.crt
三、配置ssl.conf文件
cp ssl.conf ssl.conf.bak
#修改配置文件前,先备份,养成好的习惯。
1. 找到:
SSLCertificateFile/etc/pki/tls/certs/localhost.crt
修改路径到你的crt文件位置
例如:
SSLCertificateFile /etc/pki/tls/mycerts/server.crt
2. 找到
SSLCertificateKeyFile/etc/pki/tls/private/localhost.key
修改路径到你的key文件位置
例如:
SSLCertificateKeyFile /etc/pki/tls/mycerts/server.key
3. 找到#
SSLCertificateChainFile conf/ssl.crt/ca.crt
去掉#,修改文件到你的中级CA证书存放位置,如果有认证机构会给你的。
四、启动apache检验结果是否生效
server httpd start #启动httpd
httpd -M | grep ssl
#检测mod_ssl是否加载成功
如果httpd无法启动,检测错误日志文件:
httpd日志文件在 #缺省位置
/var/log/httpd/error_log
ssl日志文件在httpd日志文件中的ssl_error_log
如果ssl日志文件报错如下:
[Thu Aug 01 11:35:18 2013] [warn] RSA server certificate wildcard CommonName (CN) `*.-----.nl' does NOT match server name!? [Thu Aug 01 11:35:18 2013] [debug] ssl_engine_init.c(846): Configuring RSA server private key [Thu Aug 01 11:35:18 2013] [error] Unable to configure RSA server private key [Thu Aug 01 11:35:18 2013] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
此问题可能是因为server.key和server.crt不匹配导致,使用下列命令检测两个文件是否匹配,输出结果相同则为匹配:
openssl x509 -noout -modulus -in server.crt | openssl md5 openssl rsa -noout -modulus -in server.key | openssl md5
如果输出结果匹配,检测是否为httpd故障,可见httpd日志,另外如果认证钥文件路径错误,httpd启动时会报错。
好了,以上是所有内容了.
如果你文章中有不正确的地方,或者你有更好的idea。
欢迎来和我分享。E-mail:[email protected]