全站免费HTTPS的实现
很长一段时间没有升级文章了,家里突发了很多事,就一直耽搁了,现在有点时间了,以后会陆续一升级的。今天来说一下服务器全站点实现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/
结果如下:
备注:使用本工具的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的实现