HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
百度百科摘过来的名词解释,我就不多解释了,这篇博客主要介绍https如何配置的。
我们先在腾讯云上新建一个云服务器,如果做实验的话建议选择亚太地区的云服务器(不需要备案,否则配置https就有问题哦)。
一、申请证书
下面我们先申请SSL证书,步骤如下:
(1)点击“云产品”,接着点击“SSL证书”。
(2)我们申请免费的证书,填写相关信息
(3) 申请后需要过一段时间才可以审核通过。
(4)我们先下载证书,下载到本地解压打开,发现有四种网站部署的证书,我们选择Apache,将Apache下面的三个文件通过xftp上传到云服务器上。并copy到 /etc/httpd/ssl/目录下,ssl这个目录没有的话需要自己创建。
不同证书安装方式可参考腾讯云给的参考文档。
https://cloud.tencent.com/document/product/400/4143
二、部署自己的网站
我们就简单搭建一个网站,就搭建discuz吧,顺便复习一下。
yum install httpd php php-mysql mariadb-server mariadb -y
systemctl start httpd.service mariadb.service
systemctl enable httpd.service mariadb.service
#数据库初始化
mysql_secure_installation
#检查php是否连接到数据库
php -m | grep mysql
systemctl restart httpd
#上传Discuz包到云服务器,并解压
unzip Discuz_X3.4_SC_UTF8【20191201】.zip -d discuz
#将discuz包下文件复制到http的主目录下,并设置权限
cp discuz/upload/* /var/www/html/ -r
chown apache:apache /var/www/html/ -Rf
下面通过浏览器访问ip开始安装discuz,我就不多介绍了。可参照我的这篇博客:
https://blog.csdn.net/Until_U/article/details/105284886
三、申请域名
因为我这个是云服务器,申请的域名要和这个服务器的公网IP进行绑定,这样才能正确解析我申请的域名,这个我就不介绍了。
四、配置https(重点来了)
(1)在 /etc/httpd/conf
目录下的 httpd.conf 配置文件找到 Include conf.modules.d/*.conf
(用于加载配置 SSL 的配置目录)配置语句,并确认该配置语句未被注释。若已注释,请去掉首行的注释符号(#
),保存配置文件。
(2)在 /etc/httpd/conf.modules.d
目录下的 00-ssl.conf 配置文件找到 LoadModule ssl_module modules/mod_ssl.so
(用于加载 SSL 模块)配置语句,并确认该配置语句未被注释,若已注释,请去掉首行的注释符号(#
),保存配置文件。
由于操作系统的版本不同,目录结构也不同,请根据实际操作系统版本进行查找。
若以上配置文件中均未找到LoadModule ssl_module modules/mod_ssl.so
和Include conf.modules.d/*.conf
配置语句,请确认是否已经安装 mod_ssl.so 模块。若未安装 mod_ssl.so 模块,您可通过执行yum install mod_ssl -y
命令进行安装。
然后编辑下面这个文件,确保是以下内容(默认不用改)
vi /etc/httpd/conf.modules.d/00-ssl.conf
LoadModule ssl_module modules/mod_ssl.so
(3)配置ssl.conf配置文件(确保可以通过https访问)
vi /etc/httpd/conf.d/ssl.conf
<VirtualHost 0.0.0.0:443>
DocumentRoot "/var/www/html"
#填写证书名称
ServerName www.gawcloud.xyz
#启用 SSL 功能
SSLEngine on
#证书文件的路径
SSLCertificateFile /etc/httpd/ssl/2_www.gawcloud.xyz.crt
#私钥文件的路径
SSLCertificateKeyFile /etc/httpd/ssl/3_www.gawcloud.xyz.key
#证书链文件的路径
SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt
</VirtualHost>
(4)HTTP 自动跳转 HTTPS 的安全配置,通过配置服务器,让其自动将 HTTP 的请求重定向到 HTTPS。您可以通过以下操作设置:
- 编辑
/etc/httpd/conf
目录下的 httpd.conf 配置文件。 - 请确认该配置文件是否存在
LoadModule rewrite_module modules/mod_rewrite.so
。 - 在
/etc/httpd/conf.modules.d
中新建一个 *.conf 文件,例如 00-rewrite.conf。在新建文件中添加以下内容:
vi /etc/httpd/conf.modules.d/00-rewrite.conf
LoadModule rewrite_module modules/mod_rewrite.so
4. 在 httpd.conf 配置文件中添加如下内容:
vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
# 新增
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>
五、测试访问
在浏览器中输入www.gawcloud.xyz或者输入https://www.gawcloud.xyz都可以访问
如果想要看到网页访问时安全的,可以写个简单的测试网页,然后访问:
vim /var/www/html/test.html
This is just a testpage!
查看证书信息:
大功告成!