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';
		}
	}
	```
相关推荐
HetFrame5 小时前
John the Ripper jumbo + HashCat 破解压缩密码 ubuntu amd GPU
linux·ubuntu·amd·密码破解·john·压缩密码·hashcat
会飞的鱼_1237 小时前
Nginx性能优化与防盗链实战指南
运维·nginx·性能优化
saynaihe8 小时前
关于Ubuntu的 update造成的内核升级
linux·运维·服务器·ubuntu·devops
网硕互联的小客服12 小时前
SSL部署完成,https显示连接不安全如何处理?
ssl·httpx
小MarkK14 小时前
[Ubuntu][mount]ubuntu电脑挂载新硬盘
linux·ubuntu·电脑·mount·硬盘挂载
吠品16 小时前
自动化SSL证书管理:应对域名SSL证书更新焦虑
运维·自动化·ssl
m0_4646082617 小时前
Nginx反向代理与负载均衡部署
运维·nginx·负载均衡
北城笑笑17 小时前
Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 支持多端口与脚本自动化 )
linux·服务器·前端·nginx·centos
SabreWulf20201 天前
Ubuntu 20.04手动安装.NET 8 SDK
linux·ubuntu·avalonia·.net8
不是吧这都有重名1 天前
为什么ubuntu大文件拷贝会先快后慢?
linux·运维·ubuntu