apache配置Let's Encrypt ssl证书(版本2)

0. 域名配置

解析域名(如luoyui.top)到服务器的ip地址上,比如我这里添加了两条解析记录。

1、解析记录为:记录类型为A ,主机记录为为@ ,记录值为144.34.145.10

2、解析记录为:记录类型为A ,主机记录为为www ,记录值为144.34.145.10

1. 安装apache、openssl和mod_ssl

1
$ yum install httpd openssl mod_ssl -y

2. 启动apache服务

1
2
$ systemctl start httpd   # 启动服务
$ systemctl enable httpd # 设置开机启动

3. 检查apache是否启动

1
2
$ systemctl start httpd  # 看到Active: active (running),表示启动成功
$ systemctl is-active httpd #输出active表示启动成功

4. 查看apache服务器网页(文档)根目录

1
grep -ri DocumentRoot  /etc/httpd

查看到如下没有打#的项就是网页(文档)根目录了,即/var/www/html

/etc/httpd/conf.d/ssl.conf:#DocumentRoot “/var/www/html”
/etc/httpd/conf/httpd.conf:# DocumentRoot: The directory out of which you will serve your
/etc/httpd/conf/httpd.conf:DocumentRoot “/var/www/html”
/etc/httpd/conf/httpd.conf: # access content that does not live under the DocumentRoot.

5. 添加网站更目录

1
mkdir /var/www/test

在Web服务器网站根目录创建一个index.html 静态文件做测试

1
echo demo > /var/www/test/index.html

6. 生成证书

新增证书,新增时certbot会根据你添加的域名生成对应的证书。不同的域名证书互相不会影响。

1
certbot certonly --webroot  -d luoyui.top -d www.luoyui.top -w /var/www/test --register-unsafely-without-email
1
2
3
4
5
6
7
8
9
10
[root@host ~]# find /etc/letsencrypt/live/
/etc/letsencrypt/live/
/etc/letsencrypt/live/README
/etc/letsencrypt/live/luoyui.top
/etc/letsencrypt/live/luoyui.top/privkey.pem
/etc/letsencrypt/live/luoyui.top/chain.pem
/etc/letsencrypt/live/luoyui.top/README
/etc/letsencrypt/live/luoyui.top/cert.pem
/etc/letsencrypt/live/luoyui.top/fullchain.pem
[root@host ~]#

看到luoyui.top目录的以上文件即证明生成证书成功。但网站还不能使用https,因为还没有配置apache的虚拟主机目录,编辑文件/etc/httpd/conf.d/vhost.conf文件,没有这个文件则自己创建出来。

1
vim /etc/httpd/conf.d/vhost.conf

添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<VirtualHost *:80>
DocumentRoot "/var/www/test"
ServerName luoyui.top
ServerAlias www.luoyui.top
<Directory "/var/www/test">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =luoyui.top [OR]
RewriteCond %{SERVER_NAME} =www.luoyui.top
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/var/www/test"
ServerName luoyui.top
ServerAlias www.luoyui.top
<Directory "/var/www/test">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/luoyui.top/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/luoyui.top/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/luoyui.top/chain.pem
</VirtualHost>
</IfModule>

如果你想要将luoyui.top跳转到www.luoyui.top,那么你只需要修改<VirtualHost>中相关变量的值为以下即可。

1
2
3
RewriteEngine on       # url重定向开启
RewriteCond %{SERVER_PORT} !^443$ # 指定跳转至443端口
RewriteRule ^/?(.*)$ https://www.%{SERVER_NAME}/$1 [L,R] # 跳转至https://www.域名.com的url

7. 重启apache服务器

1
service httpd restart

8.删除证书

如果你不想要开启https服务了,可以通过以下命令删除。

1
certbot delete

1547823797858

选择对应域名证书的编号后,回车即可删除证书。然后编辑/etc/httpd/conf.d/vhost.conf文件,删除掉对应的虚拟主机配置即可。

9. letsencrypt 有什么限制

标准限制

同一个顶级域名下的二级域名,一周做多申请 20 个
一个域名一周最多申请 5 次
1 小时最多允许失败 5 次
请求频率需要小于 20 次/s
一个 ip 3 小时内最多创建 10 个账户
一个账户最多同时存在 300 个 pending 的审核

测试模式限制

在 certbot 命令后加上 –staging 参数,限制更松一些,但不是正式证书
同一个顶级域名下的二级域名,一周做多申请 30000 个
一个域名一周最多申请 30000 次
1 小时最多允许失败 60 次
一个 ip 3小时内最多创建 50 个账户。



----------- 本文结束 -----------




如果你觉得我的文章对你有帮助,你可以打赏我哦~
0%