https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL。
##一、安装apache和ssl模块
1、安装apache
1 | yum install httpd |
2、安装ssl模块
1 | yum install mod_ssl |
重启apache:
1 | service httpd restart |
安装完mod_ssl会创建一个默认的SSL证书,路径位于/etc/pki/tls,此时可以立即通过https访问服务器了:
如果不使用默认的证书,也可以使用openssl手动创建证书。
##二、使用openssl手动创建证书 1、安装openssl
1 | yum install openssl |
2、生成服务器私钥
1 | cd /etc/pki/tls |
注意:server.key是私钥。
3、用私钥server.key文件生成证书请求文件csr
1 | openssl req -new -key server.key -out server.csr |
注:server.csr是证书请求文件。
此步骤需要输入一些证书信息:
1 | Country Name (2 letter code) [XX]:CN |
输入国家、省份、城市、公司、部门、姓名或服务器名、电子邮箱,随后会要求输入一个challengepassword(密码),无需输入,后面一律直接回车即可。
4、生成数字签名crt文件(证书文件)
1 | openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt |
用私钥签名证书请求文件,证书的申请机构和颁发机构都是自己。
5、编辑apache的ssl配置文件
1 | vim/etc/httpd/conf.d/ssl.conf |
/etc/httpd/conf.d/ssl.conf文件配置具体如下:
1 | // 设置网页存放目录 |
6、重启apache
1 | service httpd restart |
由于不是第三方根证书颁发机构颁发的证书,而是自己颁发的证书,所以浏览器会提示安全证书不受信任。
!!!注意:首页index.html 的文件权限为755,否则将会出现如上提示:
Forbidden
Youdon’t have permission to access /main.html on this server.
解决方法:修改首页index.html读写权限。
1 | chmod755 index.html |
关于openssl指令的补充说明:
1 | openssl [操作] -out filename [bits] |
例:建立一支长度为1024bits的Public Key,注意文件名。
1 | openssl genrsa -out Server.key 1024 |
生成证书请求命令:
1 | openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf |
-config:指定openssl的配置文件路径,不指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/openssl.cnf。例:
1 | openssl req -new -key server.key -outserver.csr |