全站免费HTTPS的实现

作者 : 开心源码 本文共2469个字,预计阅读时间需要7分钟 发布时间: 2022-05-11 共95人阅读

很长一段时间没有升级文章了,家里突发了很多事,就一直耽搁了,现在有点时间了,以后会陆续一升级的。今天来说一下服务器全站点实现HTTPS的技术方法,供大家参考,我的服务器是环境是:

(LAMP环境:ubuntu16.04+apache2.4.18+mysql14.14+php7.14),所以就以此为平台,向大家展现试验步骤及方法:

准备工作:

1:首先开启SSL板块:

a2enmod ssl

2:启使用SSL站点

a2ensite default-ssl

3:向apache配置文件中加入监听端口

sudo vim /etc/apache2/ports.conf

#编辑Apache端口配置,加入443端口(HTTPS采使用的443端口传输数据)

Listen 443

4:配置虚拟主机

  编辑000-default.conf文件,加入证书对应的主机头。

sudo vim /etc/apache2/sites-enabled/000-default.conf

ServerName www.whxinteng.com //此处换作自己的主域名。

5:开启防火墙

sudo ufw allow 443/tcp

重启apache:

sudo service apache2 restart 或者:

sudo /etc/init.d/apache2 restart

至此,前期的准备工作已经完成,已经符合安装HTTPS的条件了,接下来就是利使用letsencrypt生成证书和部署证书,手动做这些工作很麻烦,目前,开源项目上有不少工具能自动化完成这些工作,并且能处理续签的问题,工具很多,这里我使用的是国人写的一个工具叫scme.sh的工具,顾民思义就是该工具以scme协议为基础实现letsencrypt证书及相关秘钥生成的。我的实现步骤及方法如下:

1:安装acme.sh自动化配置工具,此工具能自动续期,简单,方便:

安装acme.sh:

curl https://get.acme.sh | sh

或者:

git clone https://github.com/Neilpang/acme.sh.git

cd acme.sh

./acme.sh –install

安装完毕后,肯定要重新打开终端进行操作,起因未知。

注意:安装本工具前要保证当前使用户对网站根目录/var/www/html/有读写的权限

默认是安装在/home/当前使用户名/.acme.sh/下

2:发布证书(以网站根目录方式发布):

acme.sh –issue -d whxinteng.com -d www.whxinteng.com –webroot /var/www/html/

结果如下:

全站免费HTTPS的实现

备注:使用本工具的apahce自动配置的方式一直没有发布成功,不知问题出在了哪儿。

3: 安装证书:

acme.sh –install-cert -d whxinteng.com \

–cert-file /home/speedx/.acme.sh/whxinteng.com/whxinteng.com.cer \

–key-file /home/speedx/.acme.sh/whxinteng.com/whxinteng.com.key \

–fullchain-file /home/speedx/.acme.sh/whxinteng.com/fullchain.cer \

–reloadcmd “service apache2 force-reload”

4: 手动配置apache,使https生效:

sudo vim /etc/apache2/sites-enabled/default-ssl.conf

SSLCertificateFile /home/speedx/.acme.sh/whxinteng.com/fullchain.cer

SSLCertificateKeyFile /home/speedx/.acme.sh/whxinteng.com/whxinteng.com.key

目前证书在 60 天以后会自动升级, 你无需任何操作.

5:关于 更新 acme.sh 到最新版 :

acme.sh –upgrade

或者开启自动更新:

acme.sh –upgrade –auto-upgrade

你也能随时关闭自动升级:

acme.sh –upgrade –auto-upgrade 0

6:增加 rewrite板块

a2enmod rewrite

7: 修改apache配置文件添加自动跳转https规则

sudo vim /etc/apache2/sites-enabled/000-default.conf

在 内

增加以下配置:

RewriteEngine on

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]

重启apache2

至此,所有工作已经完成,我的服务器上完美实现。以下是少量和工作有关的东西,顺便简要说一下:

1: google-chrome-table浏览器的安装。

->$: sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/

->$: wget -q -O – https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add –

->$: sudo apt-get update

->$: sudo apt-get install google-chrome-stable

->$: /usr/bin/google-chrome-stable //启动chrome浏览器

2: 防火墙的安装

->$ : sudo apt-get install ufw

2.1. 启使用

->$ : sudo ufw enable

->$ : sudo ufw default deny

作使用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)

2.2 关闭

->$ : sudo ufw disable

2.3. 查看防火墙状态

->$ : sudo ufw status

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 全站免费HTTPS的实现

发表回复