借助acme.sh免费开启网站的HTTPS(Apache2环境)

本文仅记录无套路搞定网站HTTPS的方法。网上搜索的资料实在太杂乱了,就连acme.sh官方文档也不够详尽。

主要就三步:生成证书、安装证书、配置SSL。下文以Ubuntu 16.04(版本不重要) + Apache2为例。默认已经安装crontabopenssl等基本工具。网站目录也是默认的 /var/www/html/

生成证书

1、先做准备工作:

# 进入服务器的用户(一般是root)目录然后创建文件夹
cd ~
mkdir -p ~/.acme.sh/
cd ~/.acme.sh/
# 配置一下别名,等下方便用
alias acme.sh=~/.acme.sh/acme.sh

2、安装acme.sh,它可以帮你搞定免费证书:

# 此时已经在~/.acme.sh/目录下,开始安装
curl https://get.acme.sh | sh
# 安装过程可能会提示socat没装,那你就装一下,装完再重新执行一次上面的安装命令
apt-get install socat

3、生成证书,以 test.com 域名作为下文示例(当然你需要改成你自己的):

acme.sh --issue -d test.com --apache

到此证书生成完毕。可以看到命令执行后会提示Success。

安装证书

1、进入apache安装目录创建存放证书的文件夹:

# Ubuntu通过仓库安装的Apache默认就在这,如果你不在这,那么请自行进入相应目录
cd /etc/apache2
# 创建一个目录等会安装证书,其实路径都无所谓,自定义的
mkdir ssl

2、开始安装证书,这是一个带参数的一次执行命令:

# 这里的3个文件名也是自定义的,自己能区分即可,但后缀最好保持.pem
acme.sh --install-cert -d test.com \
--cert-file      /etc/apache2/ssl/test.com-cert.pem  \
--key-file       /etc/apache2/ssl/test.com-key.pem  \
--fullchain-file /etc/apache2/ssl/test.com-fullchain.pem \
--reloadcmd      "service apache2 force-reload"

配置SSL

1、检查并开启SSL模块:

a2enmod ssl
# 然后最好重启一下Apache服务
service apache2 restart

2、修改SSL配置文件(关键步骤):

cd /etc/apache2/sites-available
# 这里为了方便直接用vim编辑了,你自己有别的方式修改也可以
vim default-ssl.conf

打开default-ssl.conf文件后,重点关注这几个配置:

# 这个要是开启状态on,默认就是on的
SSLEngine on
# 各证书文件路径,配置为你刚才安装时自己设置的路径,一共5个,注意注释掉原有配置
SSLCertificateFile       /etc/apache2/ssl/test.com-cert.pem
SSLCertificateKeyFile    /etc/apache2/ssl/test.com-key.pem

SSLCertificateChainFile  /etc/apache2/ssl/test.com-fullchain.pem

SSLCACertificatePath     /etc/apache2/ssl/
SSLCACertificateFile     /etc/apache2/ssl/test.com-fullchain.pem

记得:wq保存退出。最后刷新配置:

a2ensite default-ssl.conf
# 会提示你重载Apache服务
service apache2 reload

再用浏览器打开https://test.com,完美。当然,你需要保证你的服务器是开启了443端口的,默认情况下一般都没问题。用 netstat -lp 命令测试一下,看到Local Address里有https就可以了。

开小灶

一般来说,我们需要将HTTP访问强制重定向到HTTPS,咋搞?

1、检查开启相关模块:

a2enmod rewrite
a2enmod ssl # 这个刚才启用过了就无需再执行了

2、修改文件HTTP配置:

vim /etc/apache2/sites-available/000-default.conf

3、在80端口节点下增加如下三行(注意是增加不是直接复制粘贴啊!):

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

4、保存后重启Apache即可:

service apache2 restart

参考

文档里讲解了大部分使用说明,但一些细节没提到,会导致部署失败。

### 回答1: Acme.sh是一个开源的脚本工具,可以帮助用户实现自动化的证书管理,包括SSL/TLS证书的获取、更新和部署,支持Let's Encrypt等公共CA中心。QNAP则是一款NAS网络存储设备,具有数据备份、远程访问等功能,同时也支持安装插件扩展其功能。Acme.sh和QNAP的结合,可以为QNAP设备提供快速、便捷的证书管理工具,保障其数据传输安全和隐私保护。安装Acme.sh后,用户只需要一条简单的命令,就可以自动获取证书并进行更新和部署,同时通过QNAP自带的Web服务器或Web Station功能,可以实现HTTPS协议下的安全访问和数据传输,提升数据安全级别。此外,Acme.sh还提供了多种验证方式,比如DNS、HTTP、TLS、TLS-ALPN等,可以应对不同证书申请场景,提高证书获取的成功率。总之,Acme.sh和QNAP的结合,在保证数据安全的同时,也为用户提供了更多的便利和灵活度,是QNAP用户的不错选择。 ### 回答2: Acme.sh是一个在Linux系统中自动化申请和更新Let's Encrypt SSL证书的工具,它可以简化证书的管理过程,让SSL证书的部署更加简单和快捷。而QNAP则是一个网络存储设备的品牌,其设备多用于小型企业和家庭用户存储数据、共享数据等。 在Acme.sh和QNAP的结合下,用户可以在QNAP设备上自动化申请Let's Encrypt SSL证书,以保障QNAP设备上的数据传输安全。此外,使用Acme.sh与QNAP结合还可以方便地管理SSL证书的更新和扩展,减少了用户可能遇到的与证书管理相关的问题。 总的来说,Acme.sh与QNAP的结合为用户提供了一种更加简单、安全、可靠的SSL证书管理解决方案,这对于需要在QNAP设备上存储敏感数据的用户来说是非常有价值的。 ### 回答3: Acme.sh是一款高效、易用的SSL证书自动化管理工具,而QNAP则是一家以网络存储为主的制造商。acme.sh qnap可以理解为在QNAP设备上安装并配置acme.sh以便自动化管理SSL证书。 在QNAP设备上使用acme.sh,可以实现自动化地获取和更新SSL证书,使得网站的安全性得到保证。使用acme.sh的好处是它的支持范围非常广,可以与各种不同类型的Web服务器、CDN和DNS服务集成,方便快捷。 而且,acme.sh非常灵活,你可以在控制台中直接运行它,也可以使用脚本进行扩展。如果你是一名开发人员或系统管理员,那么acme.sh一定会帮助你更快更高效地管理SSL证书。 总之,acme.sh qnap是一种非常实用的工具,可以使得SSL证书管理更加简单方便,同时也能提高网站的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值