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访问的时候,浏览器会提示证书错误,需要申请权威机构授权的证书。下面提供一些免费申请地址:

0 个评论

要回复文章请先登录注册