【NGINX入门】7.Nginx配置安全证书SSL实例

  • 时间:2025-10-29 01:31 作者: 来源: 阅读:3
  • 扫一扫,手机访问
摘要: 1,环境说明 服务器系统:centos7 服务器IP地址:云服务器的公网IP 域名:bjubi.com 简单步骤流程: 拥有一台服务器(省略)> 申请注册域名(省略)> 申请免费ssl安全证书》Centos安装Nginx > Nginx配置ssl > 网站https访问成功 2,域名解析到服务器 在阿里云控制台-产品与服




【NGINX入门】7.Nginx配置安全证书SSL实例

1,环境说明

服务器系统:centos7
服务器IP地址:云服务器的公网IP
域名:bjubi.com

简单步骤流程:
拥有一台服务器(省略)> 申请注册域名(省略)> 申请免费ssl安全证书》Centos安装Nginx > Nginx配置ssl > 网站https访问成功

2,域名解析到服务器

在阿里云控制台-产品与服务-云解析DNS-找到需要解析的域名点“解析”,进入解析页面后选择【添加解析】按钮会弹出如下页面:
主机记录这里选择@,记录值就是服务器ip地址,确认。




【NGINX入门】7.Nginx配置安全证书SSL实例

3,申请ca证书

在阿里云控制台-产品与服务-安全(云盾)-CA证书服务(数据安全),点击购买证书。(阿里云SSL免费证书申请地址)




【NGINX入门】7.Nginx配置安全证书SSL实例



选择“免费版DV SSL”,点击立即购买:




【NGINX入门】7.Nginx配置安全证书SSL实例



然后点去支付:




【NGINX入门】7.Nginx配置安全证书SSL实例



最后确认支付:




【NGINX入门】7.Nginx配置安全证书SSL实例



就会回到管理界面:




【NGINX入门】7.Nginx配置安全证书SSL实例

点击“补全”,输入要解析的域名,点下一步:



说明:由于我们这里申请的是开发版免费证书,所以一个证书仅支持一个域名认证,不支持通配符。




【NGINX入门】7.Nginx配置安全证书SSL实例

等待几分钟,证书状态变为“已签发”后,证书就申请成功了。

4,下载证书

列表中找到已签发的证书,下载:





【NGINX入门】7.Nginx配置安全证书SSL实例



进入下载页面,找到ngin页签中nginx配置信息,并“下载证书 for Nginx”:




【NGINX入门】7.Nginx配置安全证书SSL实例



记录以下内容,为了一会儿配置nginx用:




【NGINX入门】7.Nginx配置安全证书SSL实例

下载的文件有两个:
1,214292799730473.pem
2,214292799730473.key

5,服务器安装,配置nginx

这里安装
注意:这里安装Nginx的过程省略了,如果需要详细的安装Nginx教程,可以参考:NGINX入门】1.Nginx基本介绍和安装入门

登录到服务器:

$ apt-get update // 更新软件
$ apt-get install nginx // 安装nginx

6,配置ca证书

1,nginx的安装目录为:/etc/nginx/。进入目录,增加cert/文件夹,把刚刚下载的两个文件上传到cert/文件夹中。

2,在/etc/nginx/sites-enabled/下,增加bjubi.com文件。内容如下:

说明:下面的配置是对443端口和80端口进行监听,443端口要启用ssl。监听443端口的server配置可以仿照上面ca认证页面的nginx配置示例进行配置。

root节点笔者创建了一个bjubi.com/的文件夹,专门存放来自这个域名的请求以示区分。

bjubi.com/文件夹下增加一个index.html文件,里面仅仅写了一行 welcome。

server {
    listen 443;
    server_name bjubi.com; // 你的域名
    ssl on;
    root /var/www/bjubi.com; // 前台文件存放文件夹,可改成别的
    index index.html index.htm;// 上面配置的文件夹里面的index.html
    ssl_certificate  cert/214292799730473.pem;// 改成你的证书的名字
    ssl_certificate_key cert/214292799730473.key;// 你的证书的名字
    ssl_session_timeout 5m;
    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 / {
        index index.html index.htm;
    }
}

server {
    listen 80;
    server_name bjubi.com;// 你的域名
    rewrite ^(.*)$ https://bjubi.com:443/$1 permanent;// 把http的域名请求转成https
}

配置完成后,检查一下nginx配置文件是否可用,有successful表明可用。

$ nginx -t // 检查nginx配置文件

配置正确后,重新加载配置文件使配置生效:

nginx -s reload // 使配置生效

至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。

如需重启nginx,用以下命令:

$ service nginx stop // 停止$ service nginx start // 启动$ service nginx restart // 重启

ngx_http_ssl_module模块相关的配置说明:

ssl_certificate file;指明证书路径
ssl_certificate_key file;证书对应的私钥文件;
ssl_ciphers ciphers;指明由nginx使用的加密算法,可以是OpenSSL库中所支持的各种加密套件;
ssl_protocols [SSLv2][SSLv3][TLSv1.1][TLSv1.2];指明使用的SSL协议版本;默认为后三个;
ssl_session_cahce off|none|[builtin[:size]][shared:name:size];指明ssl会话缓存机制;
builtin:使用openssl内置的ssl会话缓存。各worker私有;
shared:在各worker之间使用一个共享的缓存;
name:独有名称;
size:缓存空间大小
ssl_session_timeout time;ssl会话超时时长;即ssl session cache中的缓存有效时长;

7,访问效果

输入http:bjubi.com也会自动跳转至https页面。



说明:如果是云服务器列如阿里云ECS,需要到阿里云ECS的管理后台的安全组,修改端口过滤规则把80端口和443端口开放才能访问到。




【NGINX入门】7.Nginx配置安全证书SSL实例

问题:缺少ssl_module模块

CentOS下配置Nginx的https时报错:缺少ngx_http_ssl_module

1.第一,找到Nginx安装包的位置。列如,我的是:/usr/local/sr

c/nginx-1.15.1cd /usr/local/src/nginx-1.15.1

如果忘记安装包放哪里了,可以find命令找一下。

如果还是找不到(列如删除了)。可以查看当前Nginx的版本号,重新下载一个。

【查看Nginx版本命令】

/usr/local/nginx/sbin/nginx -V  (/usr/local/nginx/是你Nginx服务器的实际位置)

2.生成新的Nginx配置。执行

/usr/local/nginx/sbin/nginx -V

查看configure arguments:后边有没有值,如果有,就复制下来。

然后执行

./configure --原来有的模块(如果有的话) --with-http_ssl_module

make

3.关闭目前运行的Nginx服务器。

/usr/local/nginx/sbin/nginx -s stop

由于我的配置文件报错,缺少

nginx: emerg the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:121

所以无法关闭。于是,我尝试把新的正确的nginx.conf替换出问题的nginx.conf。

再次执行关闭,成功。

4.OK,执行最后的步骤。把编译好的nginx覆盖掉原有的nginx。

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

系统会提示是否覆盖,输入y。

我运行时,系统提示Text file busy,执行失败。

没关系!

ps -A

找到所有Nginx的进程。

Kill 1234

再次执行

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

没有报错。把正确的nginx.conf文件夹上传。

启动nginx。

./nginx -c /usr/local/nginx/conf/nginx.conf

运行成功!!

8. 参考

(1)Nginx系列教程(8) nginx配置安全证书SSL
https://blog.csdn.net/wx_15323880413/article/details/106014438

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】在Qt中如何设置窗体的背景图片(2025-10-29 20:27)
【系统环境|】无声无名 | 杨·罗威斯终身回顾展(2025-10-29 20:26)
【系统环境|】从零开始学Qt(22):QSS详解(3)- 盒子模型(2025-10-29 20:25)
【系统环境|】Quarkus vs Spring Boot 集成 RabbitMQ 谁更香?(2025-10-29 20:24)
【系统环境|】RabbitMQ相关概念及代码示例(2025-10-29 20:24)
【系统环境|】Spring Boot + RabbitMQ:轻松掌握五种基本工作模式(2025-10-29 20:23)
【系统环境|】一篇文章带你彻底玩转-RabbitMQ(2025-10-29 20:22)
【系统环境|】私有云平台搭建——史上最详细(2025-10-29 20:21)
【系统环境|】RabbitMQ最全详解(万字图文总结)(2025-10-29 20:20)
【系统环境|】.Net/C#全网最火RabbitMQ操作【强烈推荐】(2025-10-29 20:20)
手机二维码手机访问领取大礼包
返回顶部