CentOS下为Apache配置HTTP SSL

Posted by 橙叶 on Sun, Oct 23, 2016

ownCloud需要在网页和服务器端传输信息,包括登录的用户名和密码、下载的文件,如果采用普通的HTTP连接,可能会遭到网络渗透而被窃取密码。因此,有必要使用HTTPS。

一、HTTP SSL*

第一步:安装mod_ssl
yum install mod_ssl
安装完后在 /etc/httpd/conf.d/下会有一个ssl.conf的文件,
cat ssl.conf
sslweizhi1 SSLCertificateFile位于/etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile位于/etc/pki/tls/private/localhost.key 第二步:生成密钥 进入/etc/pki/tls/private,
cd /etc/pki/tls/private/
删除原来的
rm -f localhost.key
生成新的
openssl genrsa 1024 > localhost.key
返回到certs目录
cd ../certs
删除原来的证书
rm -rf localhost.crt
生成新的 可以用命令自动生成
make testcert
也可以自己输入命令 然后centos会提示你输入些信息比如国家 地区 邮箱等 随便写
openssl req -new -x509 -days 365 -key ../private/localhost.key -out localhost.crt
填写需要填写的信息,证书就生成了

这里为什么要用localhost.crt这样的名子,是因为在ssl.conf就是这样子指定的,这两个地方要一样。 再次打开/etc/httpd/conf.d下的ssl.conf,找到 sslxiugaiyuming ,改下其中的

DocumentRoot “/var/www/html/www” ServerName www.example.com 改成你需要用到ssl的域的信息,重启apache,配置结束 httpswarn 现在就可以通过https访问网站,在ie6下会安警告,因为这是我们自己发的证书

 

二、配置HSTS

HSTS(HTTP Strict Transport Security)国际互联网工程组织IETE正在推行一种新的Web安全协议 HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。

到/etc/httpd/conf/目录下

cd /etc/httpd/conf

vim httpd.conf

添加下面的文字

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
2016-10-23-4
systemctl restart httpd

 

OK!

2016-10-23

*参考资料:Linux公社



comments powered by Disqus