今天把公司域名配置成了安全域名,具体操作如下
1、申请CA证书,并把三个文件放在linux下某一位置
yourdomain.com.crt (服务器证书)
yourdomain.com.key (私钥文件)如果为空请将生成CSR时保存的私钥内容粘贴在文件中
ca-bundle.crt (根证书链)
2、安装openssl 开启Apache mod_ssl.so模块 (在httpd.conf里面)
如果有显示 mod_ssl.so 表示已经安装了apache模块。
CentOS/Redhat安装mod_ssl.so
yum install mod_ssl
Debian/Ubuntu
sudo a2enmod ssl
sudo service apache2 restart
LoadModule ssl_module modules/mod_ssl.so (如果配置已经存在就不要加)
3、在httpd.conf里面添加监听443端口:Listen 443
Listen 443 (如果配置已经存在就不要加)
4、vhost.conf里面添加安全链接虚拟站点,并添加证书位置
NameVirtualHost *:443 (非必须,配置多个SSL站点会需要)
<VirtualHost *:443>
ServerName www.getssl.cn
ServerAlias getssl.cn
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/ssl/yourdomain.com.crt
SSLCertificateKeyFile /etc/ssl/yourdomain.com.key
SSLCertificateChainFile /etc/ssl/ca-bundle.crt
</VirtualHost>
5、重启httpd
service httpd restart
6、设置防火墙
如果使用CDN(加速器),需要在CDN上面安装证书,国内免费加速的都不支持https(已知阿里云cdn支持)
检查443端口是否启动 使用下面命令 netstat -apnt | grep 443 (如果没有启动检查配置文件或者端口是否冲突)
443端口如果已经启动,但不能访问,请检查防火墙(或者安全狗) ,允许443端口.
linux iptables使用下面命令:
iptables -A INPUT -p tcp -m tcp --dport https -j ACCEPT
7、强制Apache Web服务器始终使用https
如果由于某种原因,你需要站点的Web服务器都只使用HTTPS,此时就需要将所有HTTP请求(端口80)重定向到HTTPS(端口443)。 Apache Web服务器可以容易地做到这一点。
1,强制主站所有Web使用(全局站点)
如果要强制主站使用HTTPS,我们可以这样修改httpd配置文件:
vim /etc/httpd/conf/httpd.conf
ServerName www.example.com:80
Redirect permanent / https://www.example.com
重启Apache服务器,使配置生效:
service httpd restart
2,强制虚拟主机(单个站点)
如果要强制单个站点在虚拟主机上使用HTTPS,对于HTTP可以按照下面进行配置:
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName proxy.mimvp.com
Redirect permanent / https://proxy.mimvp.com/
</VirtualHost>
重启Apache服务器,使配置生效:
service httpd restart
单个站点全部使用HTTPS,则 http://proxy.mimvp.com 会强制重定向跳转到 https://proxy.mimvp.com
一般情况下,由于浏览器会自动拦截https未被认证的网址,因此建议同时保留 http://proxy.mimvp.com 和 https://proxy.mimvp.com ,或者购买权威的认证服务,让用户浏览器信任https浏览访问。