当前位置: 首页 > news >正文

Ubuntu Nginx 配置 SSL 证书

首先需要在 Ubuntu 中安装 Nginx 服务, 打开终端执行以下命令:

$ sudo apt update
$ sudo apt install nginx -y

然后启动 Nginx 服务并设置为开机时自动启动, 执行以下命令:

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

最后再验证一下 Nginx 服务的当前状态, 执行以下命令:

$ sudo systemctl status nginx
$ sudo systemctl is-active nginx

下载证书

从云服务提供商处下载适用 NginxSSL 证书文件, 以腾讯云为例, 如果有一个 xxx.xxx 的域名, 下载到本地的文件夹名称为 xxx.xxx_nginx, 文件夹内包含下面四个证书文件:

  • xxx.xxx_bundle.crt
    • 根证书交叉文件
  • xxx.xxx_bundle.pem
    • 使用pem编码的证书文件
  • xxx.xxx.csr
    • 证书签名请求文件
  • xxx.xxx.key
    • 私钥公钥对文件

进入到 Nginx 服务的配置目录下, 创建一个 xxx.xxx_nginx 目录并进入该目录下, 然后以管理员身份下载证书文件:

$ cd /etc/nginx
$ sudo mkdir xxx.xxx_nginx
$ cd xxx.xxx_nginx
$ sudo [证书下载请求地址]

证书文件下载完成后可以通过 ls -l 查看一下刚刚下载好的证书文件。

配置代理

进入到 Nginx 配置目录下 conf.d 目录, 创建一个 xxx.xxx_nginx.conf 配置文件, 并开始编辑配置文件:

cd /etc/nginx/conf.d
sudo touch xxx.xxx_nginx.conf
sudo vim xxx.xxx_nginx.conf

假设 XXX 为当前服务的名称, 开始配置代码。

动态服务配置

upstream XXX {# 本地服务地址server 127.0.0.1:10086;
}server {listen 80;server_name xxx.xxx;# 把 HTTP 的域名请求转成 HTTPSreturn 301 https://$host$request_uri;
}server {# SSL 访问端口号为 443listen 443 ssl;# 填写绑定证书的域名server_name xxx.xxx;# 证书文件名称ssl_certificate xxx.xxx_nginx/xxx.xxx_bundle.crt;# 私钥文件名称ssl_certificate_key xxx.xxx_nginx/xxx.xxx.key;ssl_session_timeout 5m;# 请按照以下协议配置ssl_protocols TLSv1.2 TLSv1.3;# 请按照以下套件配置, 配置加密套件, 写法遵循 openssl 标准ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location / {# 网站主页路径. 此路径仅供参考, 具体请您按照实际目录操作# 例如, 您的网站运行目录在/etc/www下, 则填写/etc/www# root html;# index  index.html index.htm;proxy_pass http://XXX;proxy_http_version 1.1;proxy_redirect off;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 最大允许上传 10~20000 MB 的内容client_max_body_size 10m;}
}

静态服务配置

server {# SSL 访问端口号为 443listen 443 ssl; # 填写绑定证书的域名server_name xxx.xxx; # 证书文件名称ssl_certificate xxx.xxx_nginx/xxx.xxx_bundle.crt;# 私钥文件名称ssl_certificate_key xxx.xxx_nginx/xxx.xxx.key;ssl_session_timeout 5m;# 请按照以下协议配置ssl_protocols TLSv1.2 TLSv1.3; # 请按照以下套件配置,配置加密套件, 写法遵循 openssl 标准。ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on;location / {# 网站主页路径。此路径仅供参考, 具体请您按照实际目录操作。# 例如,您的网站运行目录在/etc/www下, 则填写/etc/www。root /.../.../.../app;index index.html;}location /static {alias /.../.../.../static;}
}

重启服务

为了使上面的配置生效, 需要检测配置文件的有效性, 并且重启 Nginx 服务:

$ sudo nginx -t
$ sudo nginx -s reload

最后就可以验证一下 https://xxx.xxx 是否可以成功访问。

http://www.lryc.cn/news/170609.html

相关文章:

  • 将本地前端工程中的npm依赖上传到Nexus
  • 软考高级架构师下篇-16通信系统架构设计理论与实践
  • 国庆中秋特辑(二)浪漫祝福方式 使用生成对抗网络(GAN)生成具有节日氛围的画作
  • stm32 串口发送和接收
  • Vite + Vue3 实现前端项目工程化
  • Java动态代理Aop的好处
  • 各种存储性能瓶颈如何分析与优化?
  • Android StateFlow初探
  • Docker Compose初使用
  • 测试与FastAPI应用数据之间的差异
  • WebStorm 2023年下载、安装教程、亲测有效
  • k8s储存卷
  • 【解决Win】“ 无法打开某exe提示无法成功完成操作,因为文件包含病毒或潜在的垃圾软件“
  • SpringBoot调用ChatGPT-API实现智能对话
  • element-table出现错位解决方法
  • DC电源模块具有不同的安装方式和安全规范
  • zabbix自定义监控、钉钉、邮箱报警
  • 短信、邮箱验证码本地可以,部署到服务器接口却不能使用
  • Java web基础知识
  • 【Linux学习】01Linux初识与安装
  • android 将数据库中的 BLOB 对象动态加载为 XML,并设置到 Android Activity 的内容视图上
  • Android12之强弱智能指针sp/wp循环引用死锁问题(一百六十六)
  • springboot自定义Json序列化返回,实现自动转换字典值
  • Lostash同步Mysql数据到ElasticSearch(二)logstash脚本配置和常见坑点
  • 兔兔答题企业版1.0.0版本全网发布,同时开源前端页面到unicloud插件市场
  • 76、SpringBoot 整合 MyBatis------使用 sqlSession 作为 Dao 组件(就是ssm那一套,在 xml 写sql)
  • 【ROS】RViz、Gazebo和Navigation的关系
  • 智能井盖:提升城市井盖安全管理效率
  • JavaWeb开发-06-SpringBootWeb-MySQL
  • 十六、垃圾回收相关概念