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';
		}
	}
	```
相关推荐
曼汐 .39 分钟前
企业网站架构部署与优化-Nginx核心功能
前端·nginx·架构
zy happy2 小时前
黑马点评前端Nginx启动失败问题解决记录
java·运维·前端·spring boot·nginx·spring
沐雨风栉2 小时前
Ubuntu+Docker+内网穿透:保姆级教程实现安卓开发环境远程部署
android·ubuntu·docker
gadiaola5 小时前
【苍穹外卖】Day01—Mac前端环境搭建
前端·nginx·macos·homebrew
朱包林6 小时前
day18-特殊符号
linux·运维·服务器·ubuntu·centos
老王笔记7 小时前
MySQL迁移SSL报错
ssl
MonkeyKing_sunyuhua7 小时前
Ubuntu 22.04上升级npm版本
linux·ubuntu·node.js
2301_803297757 小时前
Nginx核心功能
linux·运维·nginx
MonkeyKing_sunyuhua8 小时前
Ubuntu 22.04上升级Node.js版本
linux·ubuntu·node.js