Ubuntu nginx 配置 SSL 证书支持 https 请求

证书格式转换地址:https://myssl.com/cert_convert.html

安装证书

一、 证书格式

申请的 nginx pem 证书一般包含 private.key 和 public.pem 文件,分别为加密的私钥和公钥文件。如果不是 pem 格式的证书,请通过文章开头的转换网址进行转换

二、 在nginx里部署证书及优化配置ssl

到nginx的conf目录,找到nginx.conf文件,修改或者配置这样一段

复制代码
server {
	listen 443;
	server_name  www.trustasia.com #你们的域名,如www.abc.com;
	ssl	on;
	ssl_certificate      /xxx/xxx/server.pem; #根据实际的路径和文件名配置
	ssl_certificate_key   /xxx/xxx/server.key; #根据实际的路径和文件名配置
	ssl_session_timeout  5m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配
	ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配
	ssl_prefer_server_ciphers   on;
	location / {
		root   html; #站点目录
		index  index.html index.htm;
   }
}

下面为配置文件参数说明:

参数 说明
listen 443 SSL访问端口号为443
ssl on 启用SSL功能
ssl_certificate 证书文件server.pem
sslcertificatekey 私钥文件server.pem
ssl_protocols 使用的协议
ssl_ciphers 配置加密套件,写法遵循openssl标准

配置完成后,先用 sudo nginx -t来测试下配置是否有误,正确无误的话,建议重载 nginx `sudo nginx -s reload。

三、 使用全站加密,http自动跳转https(可选)

对于用户,不是不知道https,就是知道https也因为懒,不愿意输入https。这样就有一个需求,让服务器自动把http的请求重定向到https。

在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)

在http的server里 增加rewrite ^(.*) https:$host$1 permanent; 这样就可以实现80进来的请求,重定向为https了。

复制代码
server {
	server_name  www.trustasia.com
	rewrite ^(.*) https:$host$1 permanent; # rewrite 和 server_name 在同一层级
}

四、端口转发示例(可选)

在配置 nginx 时,进行端口转发是很常规的操作。端口转发时,一般需要添加一些额外的参数才能满足满足正常使用需求, 这里以请求转发到 8081 端口为例,提供一般的配置参考。您可根据自己的实际需求进行修改。

复制代码
server {

	location / {
			proxy_pass http://127.0.0.1:8081;
			proxy_set_header X-Real-IP $remote_addr; # 无此配置读取用户 ip 时读到的是127.0.0.1
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			add_header Access-Control-Allow-Origin *; # 跨域问题
			add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
			add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
		}
	}
	```
相关推荐
一直在努力学习的菜鸟5 分钟前
阿里云SSL证书到期更换指南(Nginx + Typecho)
nginx
雾时之林2 小时前
Nginx反向代理与proxy_cache缓存搭建CDN服务器
服务器·nginx·缓存
菌菌的快乐生活2 小时前
Rufus + Ubuntu 24.04 Server(中山大学镜像)通用安装教程
ubuntu
Linux_cy2 小时前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
垆边人似月.3 小时前
Ubuntu 配置 Samba 共享文件夹并映射到 Windows 完整指南
linux·windows·ubuntu
开源必胜18 小时前
Socket、异步非阻塞 I/O 与 NGINX、Netty 模型
网络·tcp/ip·nginx
用户8351414049491 天前
把日志和寄存器值喂给AI做故障定位,我的实际问法
linux·ubuntu
进击的荆棘1 天前
MySQL——在ubuntu环境下安装MySQL
数据库·mysql·ubuntu
易点云徐源2 天前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
Sayai2 天前
Ubuntu 开发环境搭建避坑(一):网卡 EEE 致 60% 周期性丢包,Realtek RTL8125 网络黑洞排查与修复
linux·运维·网络·ubuntu·性能优化