腾讯云申请SSL证书并配置Apache服务器(Centos7)

在腾讯云申请SSL证书并配置Apache服务器


使用SSL可以避免很多问题,关于SSL的介绍,看这里


因为自己的主机使用的是腾讯云 的,所以也就选择了在腾讯云购买SSL证书,他们有免费的,可以直接申请。其他的云服务商应该也是如此。


申请非常容易,可以直接登录到腾讯云,进入域名SSL证书部分,就可以了。也可以看这里的百度经验


申请完成后,可以把证书下载到本地,解压后是各种主流服务器的目录名,我这里选择Apache的。里面包括了三个文件:1_root_bundle.crt,2_www.domain.com_cert.crt 和私钥文件 3_www.domain.com.key,。


现在我们开始配置Apache部分,也可以先使用FTP工具把需要的证书文件上传至服务器上。


然后在/etc/httpd/目录下,新建目录ssl:

[root@VM_58_88_centos httpd]#mkdir ssl

然后使用mv命令,把三个文件移动到ssl目录中,接下来开始OpenSSL部分。


一般Linux各发行版本已经安装了OpenSSL,可以在终端下输入:

[root@VM_58_88_centos ~]# openssl version
OpenSSL 1.0.2l  25 May 2017
[root@VM_58_88_centos ~]#

可以看到输出了OpenSSL的版本,如果没有安装,可以自行安装


接着,编辑/etc/httpd/conf/httpd.conf文件,其他系统可以对应找到Apache的配置文件修改即可。


去掉下面代码前的#,使其生效,如果找不到,直接自己增加即可。

#LoadModule ssl_module modules/mod_ssl.so 
#Include conf/extra/httpd-ssl.conf

还有个地方可以自己先修改一下,把下面的None修改为All

<Directory "/yjdata/www/wwwroot">
    Options Indexes FollowSymLinks
    AllowOverride All  #原本为None
    Require all granted
</Directory>

修改后Apache可以根据项目文件中的.htaccess文件来修改配置,也就是启用.htaccess文件


自己在第一次配置时没注意到,导致浪费了很多时间也没配置好。


在/etc/httpd/conf/目录中,创建extra文件,并新建httpd-ssl.conf文件,并使用vim编辑:

[root@VM_58_88_centos conf]# mkdir extra
[root@VM_58_88_centos conf]# cd extar
[root@VM_58_88_centos extar]#vim httpd-ssl.conf
# 增加下面的内容:
<VirtualHost 0.0.0.0:443>
    DocumentRoot "/var/www/html"
    ServerName www.domain.com
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/2_www.domain.com_cert.crt
    SSLCertificateKeyFile /etc/httpd/ssl/3_www.domain.com.key
    SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt
</VirtualHost>

其中”/var/www/html” 是自己网站项目的根目录,根据自己的情况填写。下面的加密文件也是如此。


这样就到最后一步了,在网站项目根目录下创建.htaccess文件,可以使用: ls -a 查看是否已经存在。不存在创建即可。


增加以下内容:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

关于更详细的信息,你可以看这篇博客,Apache 强制 HTTP 全部跳转到 HTTPS


至此。所有配置就好了,只需要重启Apache就可以试试了。

server httpd restart

打开你的网站,看看是否生效了。如果有其他问题不妨看看腾讯云的证书安装指引


配置过程不会一帆风顺,遇到问题,多百度,多思考,是磨练也是成长。


 上一篇
在Django中使用Markdown+Pygments 在Django中使用Markdown+Pygments
markdown简单实用,使得我们可以更加专注写作本身,而不用为了文章的段落样式而苦恼。 如果你还没有用过Markdown,你可以看看他的简单用法,在这里 在这里我们来简单配置,使得我们的Django应用支持Markdown语法,并且支持不
2018-08-07
下一篇 
Python面试题,第二部分:网络编程和并发(34题) Python面试题,第二部分:网络编程和并发(34题)
第二部分 网络编程和并发(34题)1、简述 OSI 七层协议。应用层: 与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。 例如,一个没有通信功能的字处理程序就不能执行通信的代码, 从事字处理工作的程序员也不关心OSI的第7层。
2018-07-07