Nginx安装免费SSL证书开启Https请求实现步骤

发布时间: 2026-04-12 13:50:00 来源: 互联网 栏目: 服务器 点击: 9

《Nginx安装免费SSL证书开启Https请求实现步骤》本文介绍了在CentOS中使用LetsEncrypt获取免费SSL证书,并配置Nginx以支持HTTPS的过程,包括安装Nginx、Ngin...

在部分场景中,我们必须使用 https 请求,因为 https 请求更为安全,常用于支付方面的请求调用

https 的基础是 ssl,我们一般是没有 ssl 证书的,我们需要向供应商购买 ssl 证书,今天我们使用 Let’s Encrypt 获取免费证书,搭建我们的 https 请求

1、安装 Nginx

Centos 中搭建 nginx 环境,

可以参考我的这篇文章,Centos7中搭建Nginx环境

2、安装 ssl 模块

我们默认安装的 nginx 是没有 ssl 模块的,可以输入命令验证,进入 nginx 的目录

cd /usr/local/nginx/sbin/

执行命令

./nginx -V

注意是大写的 V,小写的 v 只会出现 nginx 的版本信息

Nginx安装免费SSL证书开启Https请求实现步骤

如图所示,我是已经安装了 ssl 模块的,没有安装的可以参考如下:

  • 1> 进入到你解压 nginx 的目录,也就是带用 nginx 版本信息的那个目录
cd  /usr/local/nginx-1.8.0/

Nginx安装免费SSL证书开启Https请求实现步骤

  • 2> 执行命令
./configure --prefix=/usr/local/nginx --with-http_ssl_module

配置了 ssl 模块,使用 make 命令重新编译

make

注意,不能使用 make install 命令,这样会导致重新安装 nginx,此时当前目录就会出现 objs 目录

Nginx安装免费SSL证书开启Https请求实现步骤

进入 objs 目录,会看到 nginx 的可执行文件

Nginx安装免费SSL证书开启Https请求实现步骤

  • 3> 替换 nginx 可执行文件

我们使用这个新的 nginx 可执行文件 替换 sbin 目录下的 nginx 可执行文件

cp ./nginx /usr/local/nginx/sbin/

系统会询问你是否覆盖,输入 y 即可,如果覆盖失败,多半是因为你的 nginx 还在启动中,先将 nginx 关闭即可

  • 4> 再次检验是否安装 ssl 模块

进入 nginx 目录

cd /usr/local/nginx/sbin/

执行命令

./nginx -V

此时就能看到 ssl 模块已经安装成功了

Nginx安装免费SSL证书开启Https请求实现步骤

3、获取 ssl 证书

  • 1、Let’s Encrypt 简介

如果要启用 HTTPS,我们需要一个 CA 证书,Let’s Encrypt 是一个免费的证书颁发机构,由 ISRG(Internet Security Research Group)运作。

  • 2、使用 Certbot 获取证书

Certbot 是 Let’s Encrypt 官方推荐的证书获取工具,它可以帮助用户很方便的获取和更新 Let’s Encrypt 证书,Certbot 支持所有 Unix 内核的操作系统

执行命令

yum install -y epel-release
yum install -y certbot
  • 4、获取证书

因为使用 Certbot 获取证书时,Let’s Encrypt 服务器会访问 http://sub.domain.com/.well-known 来验证你的域名服务器,因此你需要修改 nginx 配置文件,配置 .well-known 指向本地一个目录

location /.well-known {
    alias /usr/local/nginx/html/.well-known;
}

Nginx安装免费SSL证书开启Https请求实现步骤

  • 5、使用 certbot 命php令获取 ssl 证书,执行命令
certbot certonly --webroot -w /usr/local/nginx/html/ -d xxx.com -m xxxxxx@xxx.com --agree-tos
  • -w,指定 webroot 目录
  • -d,指定想要获取证书的域名,支持多个域名
  • -m,输入你的邮箱地址

如果获取成功,你的密钥和证书存放在 /etc/letsencrypt/live/xxx.com/ 目录下

Nginx安装免费SSL证书开启Https请求实现步骤

错误解决:

1、ImportError: cannot import name UnrewindableBodyError

解决办法,重装 urllib3 库,执行命令

pip uninstall urllib3

卸载 urllib3 库

pip install urllib3

安装 urllib3 库

2、pkg_resources.DistributionNotFound: The ‘urllib3<1.23,>=1.vcGnO21.1’ distribution was not found and is required by requests

执行命令

easy_install urllib3==1.21.1

3、ImportError: ‘pyOpenSSL’ module missing required functionality. Try upgradin

执行命令

pip install --u轻语网pgrade --force-reinstall 'requests==2.6.0'

以上就是我遇到的三个问题,期间会有询问的地方,输入 y 即可

以上错误解决完后,再次输入命令获取 ssl 证书

certbot certonly --webroot -w /usr/local/nginx/html/ -d xxx.com -m xxxxxx@xxx.com --agree-tos

没错误,就能够在 /etc/letsencrypt/live/xxx.com/ 目录下看到你的 ssl 证书了

注意:

该证书 90 天有效,到期需要重新申请,你也可以通过定时任务来定时更新 ssl 证书

4、配置 nginx HTTPS server

编辑 nginx 的配置文件

cd /usr/local/nginx/conf/

Nginx安装免费SSL证书开启Https请求实现步骤

编辑 nginx.conf 文件

vim nginx.conf

在 server {} 后面加入以下内容

# HTTPS server
server {
	# 监听端口,默认443
	listen 443 ssl;
	# 你的域名
	server_name xxx.com;

	# 你证书的位置
	ssl_certificate      /etc/letsencrypt/live/xxx.com/fullchain.pem;
	ssl_certificate_key  /etc/letsencrypt/live/xxx.com/privkey.pem;

	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers  on;
	
	# 默认首页
	location / {
		root   html;
           index  index.html index.htm;                   
	}
}

5、访问测试

重启 nginx,进入 sbin 目录

cd /usr/local/nginx/sbin

输入命令

./nginx -s reload

浏览器访问

https://xxx.com

Nginx安装免费SSL证书开启Https请求实现步骤

表示,我们的 ssl 证书生效,https 配置成功

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持轻语网(www.qingyu.net)。

本文标题: Nginx安装免费SSL证书开启Https请求实现步骤
本文地址: http://www.qingyu.net/jiqiao/fuwuqi/738286.html

如果本文对你有所帮助,在这里可以打赏

支付宝二维码微信二维码

  • 支付宝二维码
  • 微信二维码
  • 声明:凡注明"本站原创"的所有文字图片等资料,版权均属轻语网所有,欢迎转载,但务请注明出处。
    多服务器批量管理工具对比与选型:从Xshell到自动化运维Nginx安装后添加ssl模块方式实践
    Top