最近公司准备把官网从 http 的升级到https的,查阅了相关资料,最后选择使用Let's Encrypt来生成证书。
Let's Encrypt是国外一个公共的 非营利性的 SSL项目,我们可以从 Let’s Encrypt 获得网站域名的免费的证书。这个是官网链接
由于在安装证书前,已经安装配置过了 nginx ,所以安装步骤过程和网上的有一些差别,这里也是记录一下自己实践的过程
这里是官网的安装步骤
因为自己已经安装过了 nginx 所以部分命令会不一样,首先启用 EPEL
yum install epel-release
然后安装Certbot
yum install certbot
中间会让你输你的电子邮箱,同意 确认 等等 ,输入 同意 确认即可,没看懂复制出来翻译下,安装流程走就行了
接下来就是生成证书了,命令如下
certbot certonly --webroot -w /usr/local/nginx/html/HiMoney.in -d himoney.in -d www.himoney.in
这个命令会为himoney.in和www.himoney.in 这两个域名生成一个证书,使用--webroot
模式会在 /usr/local/nginx/html/HiMoney.in中创建.well-known
文件夹,这个文件夹里面包含了一些验证文件,certbot会通过访问himoney.in/.well -known / acme-challenge来验证你的域名是否绑定的这个服务器。这个命令在大多数情况下都可以满足需求,
因为我之前已经安装配置过nginx ,这里的这个路径 /usr/local/nginx/html/HiMoney.in 是你nginx 80端口默认访问的文件夹,如果你也安装过nginx ,这里的 文件路径换成你自己的 80 端口默认访问的文件夹,即可生成证书,生成后会输出证书所咋的路径,一般是 /etc/letsencrypt/live/ 目录下
然后我们在 nginx 里面,配置 443 端口的证书的路径即可
server {
listen 80;
listen 443 ssl;
server_name himoney.in www.himoney.in;
ssl_certificate /etc/letsencrypt/live/himoney.in/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/himoney.in/privkey.pem;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/local/nginx/html/HiMoney.in;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置好后我们看下官网的界面,
443 端口是 https的 ,接下来我们把 http 的请求,都转发到 https 的接口