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

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

安装证书

一、 证书格式

申请的 nginx pem 证书一般包含 private.keypublic.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';
		}
	}
	```
相关推荐
q***96585 分钟前
如何在 Ubuntu 22.04 上安装 MySQL
linux·mysql·ubuntu
剑动山河11 分钟前
ubuntu 22.04 升级openssh默认版本8.9p1 到10.1p1
linux·ubuntu
艾莉丝努力练剑1 小时前
【Linux基础开发工具 (二)】详解Linux文本编辑器:Vim从入门到精通——完整教程与实战指南(上)
linux·运维·服务器·人工智能·ubuntu·centos·vim
赴遥10 小时前
WSL2下Ubuntu20.04图形化环境配置
ubuntu·wsl2·xfce4·图形化页面
qq_3168377512 小时前
初步压测的 nginx反向代理 到 Spring Cloud网关 到 Spring Cloud微服务的网络参考配置
nginx·spring cloud·微服务
SakitamaX14 小时前
nginx
运维·nginx
Theliars16 小时前
Ubuntu 上使用 VSCode 调试 C++ (CMake 项目) 指南
c++·vscode·ubuntu·cmake
Hy行者勇哥17 小时前
物联网工控一体机操作系统选型:安卓、Ubuntu、Debian 场景化决策指南
android·物联网·ubuntu
小坏讲微服务18 小时前
Nginx集群与SpringCloud Gateway集成Nacos的配置指南
spring boot·nginx·spring cloud·gateway
Stara05111 天前
Ubuntu环境中LLaMA Factory 的部署与配置—构建大语言模型微调平台
ubuntu·lora·大语言模型·模型微调·qlora·llama-factory·实践指南