apache安装配置SSL证书(HTTPS)

目前条件是:apache未安装任何ssl扩展模块,接下来我们安装ssl模块并配置它,最终让它实现http自动跳转到https。

 首先在Linux下面安装ssl(我用的是Cenots系统): 

yum -y install mod_ssl   ##安装apache ssl模块

/usr/sbin/httpd -k restart  ##重启apache服务,提示了下面错误:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.69.50. Set the 'ServerName' directive globally to suppress this message

简单处理一下,编辑vim /etc/httpd/conf.d/mysite.conf ##你的名称也许不同,修改apache配置文件,在结尾处增加 ServerName  localhost:80

运行命令netstat -tunlp 命令查看443是否运行。

并且在/etc/httpd/conf/conf.modules.d/下面会多出一个00-ssl.conf文件,在/etc/httpd/conf/下面会多出一个ssl.conf文件。

现在我们需要将证书文件,一般是一个xxxx.crt文件(也有可能是两个crt文件)+ 一个xxxx.key文件,拷贝到你的服务上随便某个位置,建议是/etc/pki/tls/certs/下面

接下来编辑/etc/httpd/conf/ssl.conf文件,大约在59行的位置添加两行:

DocumentRoot "/www/"  ##指定你的网站存放目录

ServerName www.eee-eee.com:443  ##绑定您的域名

SSLCertificateFile /etc/pki/tls/certs/localhost.crt     ##大约在100行左右,指定你的证书文件

SSLCertificateKeyFile /etc/pki/tls/certs/localhost.key  ##大约在107行左右,指定你的秘钥文件

#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt  ##大约在116行,指定你的Chain证书文件

保持并退出文件,重启apache服务,截止目前我们的证书就配置完了。你可以通过访问https://www.你的域名来访问是否生效。如果你的访问无法打开网站,请继续向下看。

如果打不开网站,请注意:在诸多服务安全设置的情况下443需要进行开启设置,比如通过你的防火墙增加443端口,或通过云安全策略增加443的规则。

如果你开启了linux自身的防火墙功能,请检查规则:

# Generated by iptables-save v1.4.21 on Tue Sep  8 23:24:34 2020

*filter:

INPUT DROP [127538:5288907]:

FORWARD ACCEPT [0:0]:

OUTPUT ACCEPT [89000968:203456962330]

:syn-flood - [0:0]

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 20000:30000 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

COMMIT# Completed on Tue Sep  8 23:24:34 2020

 

最后,我们来设置http自动跳转到https上面的规则:

我们是通过修改网站根目录下面的.htaccess文件配置的规则,当然你也可以通过httpd.conf进行配置。

RewriteEngine On ##找到这行字母,在下面添加以下3行。

RewriteBase /

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

 

截止目前,Apache ssl证书环境就搭建完毕了。

 

 

最后,设置http跳转到https:

我们用的方法是在网站根目录下面的.htaccess文件中配置规则:

增加以下代码:

RewriteBase /RewriteBase /RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]