在腾讯云的CentOS+Apache环境上实现全站https

作者: 小月雨田 分类: web技术 发布时间: 2018-11-27 22:26

在腾讯云的CentOS+Apache环境上实现全站https

  https已经受到诸多互联网大企业的推荐,成为网站的基础配置,已经是大势所趋。尤其是在一些免费的SSL证书出现之后,很多个人、小企业的网站也开始支持https了。因此,今天博主就把自己在腾讯云上的配置https的过程写下来,供大家参考。

1.免费SSL证书申请

  要配置https,首先要有SSL证书。SSL证书有屌丝版(免费)和土豪版(收费)之分,这里,我申请的当然是屌丝版了。提供屌丝版的SSL证书比较常见的就是TrustAsia、Let’s Encrypt 等。TrustAsia的证书呢,有效期有一年,但是,只支持绑定一个一级域名或者子域名。而Let’s Encrypt 的证书,有效期只有三个月,但是支持通配符,也就是说,对二级域名的数量没有限制。因为个人需要,我这里选择申请Let’s Encrypt 的通配符SSL证书。

1.1制作CSR文件

  在申请之前Let’s Encrypt的证书之前,我们需要先制作一个CSR文件,我们可以通过在线制作,地址如下:点击在线制作CSR。点击之后,参看下图,填写内容,制作CSR文件。

https_001.png

  填写完成后,点击生产CSR文件,即可自动生产CSR文件。为了方便,建议勾选:选中后发送生产的CSR文件到上面输入的邮箱。

https_002.png

  点击之后,会生产两个文件,一个CSR文件,一个KEY文件,请分别点击下载。https_003.png

  下载下来的CSR文件,默认名字为:star.域名_csr,而KEY的默认名字则是:star.域名_key

1.2申请SSL证书

  制作好CSR文件以后,我们就可以申请SSL证书了。我的SSL证书是在:FreeSSL.org上申请的,所以,这一步仅供大家参考。

https_004.png

  打开连接,FreeSSL.org提供了三种免费证书供大家选择,如果想要通配符域名证书,请勾选Let’s Encrypt V2,然后在域名出,填写好要申请的域名,通配符域名写成:*.example.com,比如,www.qq.com,就写成*.qq.com。完成以后,点击创建免费的SSL证书,即可。

https_005.png

  点击以后,需要填写部分内容,第一个是域名所有人的邮箱地址,然后CSR生成出,请选择我有CSR,选择以后,最下面有一个内容框,里面填写的内容,是把我们在上一步下载的star.域名_csr文件,用记事本或者NotePad++打开,把里面的内容全部复制粘贴到里面去即可。最后就是点击创建证书。

https_006.png

  证书创建时,有一个DNS验证环节,来验证你是否是域名的所有者。在这一环节,我们需要记录值一览的内容复制下来,然后在DNS解析中添加一个TXT的解析记录:

https_007.png

  添加完成后,我们先检测一下是否已经添加成功。点击DNS验证页面的右下角的配置完成,检测一下。

https_008.png

  检测成功以后,如下图。如果不成功,在确认解析记录没有添加错误的话,可以等待几分钟,等DNS缓存更新后,再次检测。https_009.png

  检测成功以后,我们就点击:点击验证,开始进行DNS验证。

https_010.png

  验证通过,就会自动生成SSL证书了。我们将证书下载下来即可。

https_011.png

1.3上传证书到腾讯云,进行托管

  其实,完成上一步,我们的证书已经申请完成了。不过,为了方便,我还是建议把证书上传到腾讯云上,进行托管。我们从FreeSSL.org上下载来的证书,是一个zip压缩包。里面有两个文件,一个是full_chain.pem,一个是private.key。我们只需要第一个文件解压出来就行。

https_012.png

  然后,我们选择腾讯云的控制台界面的左上角的云产品,点击:SSL证书管理,进入SSL证书管理。

https_012.png

  在SSL证书管理界面,点击上传证书。

https_014.png

  在上传证书时,需要填写两个信息,一个是证书内容,一个是私钥。

https_015.png

  证书内容就是我们刚才下载、解压出来的full_chain.pem文件里的内容,用记事本或者NotePad++打开,把里面的内容,复制粘贴到证书内容里即可。

https_016.png

  而私钥内容,则是我们在制作CSR文件时,下载下来的star.域名_key文件。同样是用记事本或者NotePad++打开,把里面的内容复制粘贴到私钥内容里就行。

https_017.png

  两个内容都复制粘贴好以后,点击上传,就完成了证书的上传。

https_018.png

https_019.png

2.配置https

2.1上传证书到云服务器

  要配置https,需要在服务器端有SSL证书。因此,我们需要把申请好的SSL证书上传到服务器上。我们先把证书从腾讯云的SSL证书管理上下载下来。之所以又要从腾讯云上下载一次,是因为腾讯云下载下来的是证书经过了转化,更方便我们在后面的配置。

https_020.png

  当然,下载证书过程很简单,直接点击下载就可以了。不过要注意,如果你申请了多个证书,要选择正确的证书。

https_021.png

  从腾讯云下载下来的证书,默认文件名是:域名.zip。里面有三个文件,Apache、IIS和Nginx,因为我用的是Apache作为服务器,所以,只需要把Apache文件夹解压出来就可以了。Apache文件夹里,有三个文件,默认的名字,分别为:1.1_root_bundle.crt;2.2_域名.crt;3.3_域名.key。然后通过FTP把Apache文件夹上传到服务器,上传后,Apache文件夹的路径为:/A/Apache。

https_022.png

  我们先Apache软件的安装目录里,建立一个文件,用来存放SSL证书,命令为:

mkdir /etc/httpd/ssl

  然后把我们上传的证书文件,移动到ssl文件夹里,命令为:

mv /A/Apache/* /etc/httpd/ssl

  要再强调一下,这里的/A/Apache,请根据实际情况填写正确的路径。

2.2安装并配置OpenSSL

  服务器软件Apache要配置https需要一个mod_ssl模块,因此,我们需要安装mod_ssl。安装很简单,通过yum安装,参数y是表示默认安装。

yum install mod_ssl -y

https_023.png

  安装完成后,mod_ssl会自动生成一个/etc/httpd/conf.d/ssl.conf,我们需要对它进行配置。

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

  需要修改的地方,不多,就三个参数1.SSLCertificateFile: SSLCertificateFile /etc/httpd/ssl/2_域名.crt;2.SSLCertificateKeyFile:/etc/httpd/ssl/3_域名.key;3.SSLCertificateChainFile:/etc/httpd/ssl/1_root_bundle.crt

https_024.png

  修改完成后,重启Apache。就能以https://域名的方式访问网站了。

2.3强制跳转https

  当然了,按照上面的设置,网站是http和https同时存在的。如果喜欢,可以进行https的强制跳转。当然,方法很多,最常见的就是.htaccess来进行强制跳转。用.htaccess来实现强制跳转,方法和代码也很多,这里我就写一个,供大家参考。这一方法是通过HTTP 80 强制转 HTTPS来实现的。

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://域名/$1 [R,L]

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。