Linux下Apache配置ssl让其支持https协议
一、实验环境:
操作系统: CentOS Linux release 7.2.1511 (Core)apache版本:Apache/2.4.6 (CentOS)
实验前提:Lamp(Linux、Apache、Mariadb、PHP)已经配置好,能正常访问http
二、安装Apache Ssl模块:
要安装Apache ssl模块,使用yum命令安装openssl、mod_ssl包即可:yum install openssl mod_ssl -y
三、配置ssl证书:
1、查看证书位置:
安装好后,会生成一个啊ssl.conf文件,完整路径为:/etc/httpd/conf.d/ssl.conf,在此配置文件中能找到当前的配置证书路径。[root@aiezu.com ~]# cat /etc/httpd/conf.d/ssl.conf|grep ^SSLCertificate SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
2、生成新密钥和证书:
生成新证书前需要删除掉原来的证书,并让新证书的名称和路径与原证书相同,这样就无需修改ssl.conf配置文件即可完成证书修改。# 生成新私钥 cd /etc/pki/tls/private rm -f localhost.key openssl genrsa 1024 > localhost.key # 生成新证书 cd /etc/pki/tls/certs/ rm -f localhost.crt openssl req -new -x509 -days 365 -key /etc/pki/private/localhost.key -out localhost.crt
在上面证书生成过程中,要交互输入如下信息:
- Country Name (2 letter code) [XX]: CN <--两位国家编码
- State or Province Name (full name) []: Hunan <--省、州名称
- Locality Name (eg, city) [Default City]: Changsha <-- 城市名称
- Organization Name (eg, company): aiezu.com <-- 机构单位名称
- Organizational Unit Name (eg, section) []:IT <-- 单位部门名称
- Common Name (eg, your name or your server's hostname) []:aiezu.com <--主机域名
- Email Address []:465272@qq.com <-- 电子邮箱
四、配置https虚拟主机:
下面以本站域名aiezu.com为例配置支持http、https的虚拟主机。使用vim编辑域名aiezu.com虚拟主机配置文件"/etc/httpd/conf.d/aiezu.com.conf",添加https 443端口的虚拟主机配置如下(17行开始的部分):<Directory /storage/web/aiezu.com> AllowOverride All Require all granted </Directory> <VirtualHost *:80> AddDefaultCharset utf-8 ServerName aiezu.com #强制将http 定向到 https #Redirect permanent / https://aiezu.com/ ServerAdmin 465272@qq.com DocumentRoot /storage/web/aiezu.com CustomLog logs/aiezu.com-access combined ErrorLog logs/aiezu.com-error <IfModule mod_rewrite.c> </IfModule> </VirtualHost> <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key AddDefaultCharset utf-8 ServerName aiezu.com:443 ServerAdmin 465272@qq.com DocumentRoot /storage/web/aiezu.com CustomLog logs/aiezu.com-ssl-access combined ErrorLog logs/aiezu.com-ssl-error </VirtualHost>
五、重启Apache服务:
编辑好后,重启apache服务,即可通过https://aiezu.com访问了。service httpd restart
六、附录(免费DV证书):
由于我们自己生成的证书是未经权威证书颁发机构授权的,所有通过https访问的时候,浏览器会提示证书错误,需要申请权威机构授权的证书。下面提供一些免费申请地址:- 阿里云:https://common-buy.aliyun.com/?spm=5176.7968328.231195.1.7FheST&commodityCode=cas#/buy
- 腾讯云:https://console.qcloud.com/ssl