直到在CentOS 7.5中安装Nginx并使用Let’ Encript配置SSL
以下是在 CentOS 7.5 上安装 Nginx 并配置 Let’s Encrypt SSL 的步骤备忘录。
执行环境如下:
-
- CentOS 7.5
-
- Nginx 1.15.2
- certbot 0.25.1
1. 前提
在这里,我们假设以下方法已经被实施,并不进行说明。
-
- 自分のドメインを取得済みであること
- 外部からTCPポート80番でサーバまで到達可能なこと
2. 使用Nginx(Web服务器)
我将按照Nginx官方网站的安装步骤进行安装。
(1) 设置仓库信息
由于Nginx的官方代码库已经发布,所以我们需要根据官方网站上的说明,使用yum来配置它。只需在以下内容中创建一个新文件“/etc/yum.repos.d/nginx.repo”。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
将第3行的baseurl更改为适用于CentOS 7。
(2) 使用 yum 安装 Nginx
只要设置好仓库,就可以通过yum来正常安装Nginx。
# nginxが存在することを確認
yum info nginx
# nginxをインストール
yum install nginx
(3)Nginx的启动配置
当Nginx安装完成后,您可以启动它。
同时您可以进行自动启动配置。
配置自动启动后,Nginx将在计算机启动时自动运行。
# 起動
systemctl start nginx
# 自動起動on
systemctl enable nginx
(4) 防火墙设置
为了使外部能够连接,我们会打开防火墙上的HTTP/HTTPS端口。
(Note: Chinese translation may vary slightly based on context and personal preference.)
# http用ポートを開ける
firewall-cmd --add-service=http --zone=public --permanent
# https用ポートを開ける
firewall-cmd --add-service=https --zone=public --permanent
# 設定を反映
firewall-cmd --reload
※在此不做说明,但请另外做好路由器等端口的开放等操作。
(5) Nginx连接确认
当执行到这一步时,应该能够通过浏览器连接到Nginx,请尝试从外部访问以下内容。
http://您的域名
欢迎使用 Nginx!如果看到了“Welcome to Nginx!”的页面显示,表示安装成功。
让我们使用Let’s Encrypt来设置SSL。
终于要开始在Let’s Encrypt上进行SSL的设置了。
通过使用证书管理软件”certbot”,Let’s Encrypt可以自动化获取和更新SSL/TLS服务器证书的过程。
(1) 安装Certbot
根据Certbot官方网站的说法,Certbot似乎有一个适用于Nginx的插件,所以这里将使用它。
由于Certbot位于EPEL存储库中,因此首先需要安装EPEL存储库。
# EPELリポジトリをインストール
yum install epel-release
# certbotのNginxプラグインが存在することを確認
yum info python2-certbot-nginx
# certbotとNginxプラグインをインストール
yum install python2-certbot-nginx
通过安装certbot插件,certbot本身及其依赖将自动安装。
(2) 在Nginx上设置域名
certbot的Nginx插件可以在获取服务器证书的同时自动进行Nginx配置,但在此之前需要在Nginx中设置要用于验证的域名。
在Nginx的配置文件中,您可以按照以下方式设置域名。
server {
server_name example.com;
・・・
请将example.com设置为您自己的域名。
# Nginx再起動
systemctl restart nginx
(3) 通过certbot获取服务器证书并配置Nginx。
执行certbot时加上–nginx选项。
通过加上–nginx选项,它可以在获取服务器证书后将其设置到Nginx中。
certbot以对话形式执行,按照提示的消息进行电子邮件地址等输入。
certbot --nginx
因为在最后一步中被询问关于HTTPS重定向设置的问题,所以我们会选择选项2。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
完成之后,请重新启动Nginx以应用配置更改。
# Nginx再起動
systemctl restart nginx
(4) 确认连接
请尝试使用外部浏览器访问以下地址,因为以上设置已经完成。
https://我的域名
欢迎使用Nginx!如果在地址栏上出现了一个带有锁形标志的页面,那就代表成功了。(适用于Chrome浏览器)
(5) 更新证书
我们用Let’s Encrypt获得的服务器证书有效期为90天。
因此,在证书到期之前需要更新证书。
Certbot也可以用于证书的更新。
# サーバ証明書の更新
certbot renew
# Nginxを再起動して反映させる
systemctl restart nginx
在这里不会详细说明方法,但可以通过cron等自动更新。