Centos7安装给Apache服务安装配置SSL证书

一、目标

在Centos7.6平台下使用openssl给apache做自签名证书,并给apache设置HTTPS的SSL证书。(无坑版)

二、平台

[root@kahn.xiao ~]# uname -r
3.10.0-957.el7.x86_64
[root@kahn.xiao ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@kahn.xiao ~]# rpm -qa |grep httpd
httpd-tools-2.4.6-90.el7.centos.x86_64
httpd-2.4.6-90.el7.centos.x86_64

三、前言
1.请严格按照上面所述准备安装环境(有可能不同版本的centos也是可以的,但没去测试不保证一定能行)

2.确保你的centos7是能够上网的。

3.假定你的域名叫hiibm.com,想通过https://www.hiibm.com的方式来访问主页。已经配置好apache能访问http://www.hiibm.com

四、安装Openssl,并制作自签名证书

1.安装Openssl

[root@centos764 httpd]# yum install -y mod_ssl

2.新建证书存放目录,建议放到apache主配置文件夹下

mkdir /etc/httpd/certs

3.创建一个证书密钥(2048位的加密私钥)
执行成功的话会在/etc/httpd/certs/下生成一个ca.key的密钥文件

[root@centos764 certs]# cd /etc/httpd/certs
[root@centos764 certs]# openssl genrsa -out ca.key 2048

4.生成证书签名请求csr文件
执行下面的命令后,会让输入郭嘉名CN,省州名Shanghai,城市名Shanghai,组织名hiibm.com,单位名hiibm.com,主机名hiibm.com,email:37213690@qq.com,然后还问你是否输入密码{A challenge password []:}嫌麻烦的话可以直接回车。最后再输入个公司名hiibm.com回车。
顺利的话会在/etc/httpd/certs/下生成一个ca.csr文件

[root@centos764 certs]# openssl req -new -key ca.key -out ca.csr

5.Centos7下使用Openssl给Apache创建自签名证书
注释:-days 3721代表证书的有效天数,-in ca.csr使用刚才生成的证书请求文件,-signkey ca.key使用刚才生成的密钥文件,-out ca.crt生成自签名证书ca.crt文件
如果顺利的话会在/etc/httpd/certs/下生成一个ca.crt文件

[root@centos764 certs]# openssl x509 -req -days 3721 -in ca.csr -signkey ca.key -out ca.crt

五、给apache安装SSL模块,并配置Apache开启SSL

啰嗦:如果你的apache是使用yum install httpd的方式安装的,那么它将不会给你安装SSL模块,也就是需要我们单独安装SSL模块,也非常简单,看下面

1.安装apache的SSL模块

yum install -y mod_ssl

2.再啰嗦,我的环境是centos7.6,apache是httpd-2.4.6-90.el7.centos.x86_64,我只保证按照我的环境能成功(如果版本差别不大,应该没啥问题,你可以尝试一下)

3.修改ssl.conf配置文件,并添加SSL站点域名及路径到配置文件

vim /etc/httpd/conf.d/ssl.conf


3-1.将SSLCertificateFile /etc/pki/tls/certs/localhost.crt 修改为【SSLCertificateFile /etc/httpd/certs/ca.crt】
3-2.将SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 修改为【SSLCertificateKeyFile /etc/httpd/certs/ca.key】
3-3.将#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt修改为【SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt】

3-4.顺手将SSL站点加到配置文件/etc/httpd/conf.d/ssl.conf中
(注意里面有我们刚才生成的证书地址,请确保证书地址和文件路径是对的)

<VirtualHost *:443>
    ServerName hiibm.com
    DocumentRoot /var/www/html/hiibm.com
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    SSLCertificateFile /etc/httpd/certs/ca.crt
    SSLCertificateKeyFile /etc/httpd/certs/ca.key
    SSLCertificateChainFile /etc/httpd/certs/ca.csr
</VirtualHost>

<VirtualHost *:443>
    ServerName www.hiibm.com
    DocumentRoot /var/www/html/hiibm.com
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    SSLCertificateFile /etc/httpd/certs/ca.crt
    SSLCertificateKeyFile /etc/httpd/certs/ca.key
    SSLCertificateChainFile /etc/httpd/certs/ca.csr
</VirtualHost>

 4.别忘记重启apache服务,让配置生效
如果你开启了防火墙,别忘记放行443端口,如果你不知道怎么放行,直接systemctl stop firewalld关掉它即可。

systemctl restart httpd

六、修改以http方式访问站点时自动跳转到https(本步骤可选)

啰嗦:之前我的http站点配置文件放在了/etc/httpd/conf.d/vhosts.conf中了,修改一下它,让它自动跳转到HTTPS上去

[root@centos764 conf.d]# vim /etc/httpd/conf.d/vhosts.conf
#下面的以Rewrite开头的那三行是本次的重点,其余的是以前配置http方式时做的虚拟站点
<VirtualHost *:80>
   ServerName hiibm.com
   ServerAlias hiibm.com www.hiibm.com
   DocumentRoot /var/www/html/hiibm.com
   DirectoryIndex index.html index.php
   ErrorLog /var/log/httpd/hiibm.com/hiibm.com-error.log
   CustomLog /var/log/httpd/hiibm.com/hiibm.com-access.log common
   RewriteEngine on
   RewriteCond %{SERVER_PORT} !^443$
   RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>

别忘记重启apahce服务,让配置生效

systemctl restart httpd

七、测试
1.先自己去设置一下hosts文件c:\windows\system32\drivers\etc\hosts,加个指向到centos,
如:10.100.100.64 hiibm.com
如:10.100.100.64 www.hiibm.com

2.浏览器打开https://www.hiibm.com
(如果你做了HTTP自动跳转HTTPS的话,你还可以直接在浏览器地址栏里输入hiibm.com即可)

点继续前往 

激动人心的时刻到来了

------------------------------------------END---2020年2月18日01:25:00----------------------------------------------------------
最后再放送一个福利,如果你的域名是阿里云的,可以免费申请symantec的ssl证书,不过是一年的哦,不过也非常不错了(毕竟各大浏览器都承认symantec的证书,当你使用它的证书后,浏览器就不会说你是不可信的了。直接就可以打开https页面)
----------------------------------------------------------------------------------------------------------------------------------------------
本帖写给刚入坑的朋友,本人也是刚玩linux不就,弄个php环境找了一天的帖子,到处是坑。这里总结一下分享出来。但你要知道写帖子容易,但写技术帖子+截图+注解真的耗时间。非常辛苦。
如果我的帖子能帮到你,我也希望得到你的支持,鼓励我写更多无坑的帖子,不胜感激。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇洒哥Kahn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值