nginx配置ssl实现https访问的步骤(适合新手)

前言

刚刚部署完服务器后的我满怀欣喜地访问自己的网站,看哪都哪满意。但是兴奋感一过发现,诶,为什么浏览器左上角会提示不安全?想了想,不行,我也要搞个https来,我也要上锁!

HTTP协议以明文方式发送内容,不提供任何方式的数据加密。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

申请证书

在这里,我直接申请腾讯云的免费证书。这里需要注意下,这亚洲诚信机构颁发的免费证书只能一个域名使用,子域名那些需要另外申请。别说,这腾讯里面申请还挺快的,十多分钟就通过了。下载的是一个zip文件,解压后打开里面的Nginx文件夹,把1_XXX.com_bundle.crt跟2_XXX.com.key文件复制下来。

打开nginx配置文件

不知道nginx文件位置的话可以通过whereis nginx命令来查找。

我的配置文件在/ect/nginx,现在把刚才的两个证书文件复制过来,待会直接配置使用就行了。nginx的配置文件是nginx.conf,里面的配置内容有以下,为了容易明白,我都加上了注释。

# 运行用户,默认即是nginx,可以不进行设置
user nginx;
#Nginx进程,一般设置为和CPU核数一样
worker_processes 1;

#错误日志存放目录
error_log /var/log/nginx/error.log warn;
#进程pid存放位置
pid /var/run/nginx.pid;

events {
 worker_connections 1024; # 单个后台进程的最大并发数
}

http {
 include /etc/nginx/mime.types; #文件扩展名与类型映射表
 default_type application/octet-stream; #默认文件类型
 #设置日志模式
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
   '$status $body_bytes_sent "$http_referer" '
   '"$http_user_agent" "$http_x_forwarded_for"';

 access_log /var/log/nginx/access.log main; #nginx访问日志存放位置

 sendfile on; #开启高效传输模式
 #tcp_nopush on; #减少网络报文段的数量

 keepalive_timeout 65; #保持连接的时间,也叫超时时间

 #gzip on; #开启gzip压缩

 include /etc/nginx/conf.d/*.conf; #包含的子配置项位置和文件
}

大致看一下就好了,这是全局配置。为了更好管理,我们还是在最后一行声明的/etc/nginx/conf.d文件夹里进行子项目配置。

打开里面的default.conf

#设定虚拟主机配置
server {
 #侦听443端口,这个是ssl访问端口
 listen 443;
 #定义使用 访问域名
 server_name XXX.com;
 #定义服务器的默认网站根目录位置
 root /web/www/website/dist; 

 #设定本虚拟主机的访问日志
 access_log logs/nginx.access.log main;

 # 这些都是腾讯云推荐的配置,直接拿来用就行了,只是修改证书的路径,注意这些路径是相对于/etc/nginx/nginx.conf文件位置
 ssl on;
 ssl_certificate 1_XXX.com_bundle.crt;
 ssl_certificate_key 2_XXX.com.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 /web/www/website/dist;
 #定义首页索引文件的名称
 index index.html;
 }

 #静态文件,nginx自己处理
 location ~ ^/(images|javascript|js|css|flash|media|static)/ {
 #过期30天,静态文件不怎么更新,过期可以设大一点,
 #如果频繁更新,则可以设置得小一点。
 expires 30d;
 }

 #禁止访问 .htxxx 文件
 # location ~ /.ht {
 # deny all;
 #}

}
server
{
 # 80端口是http正常访问的接口
 listen 80;
 server_name XXX.com;
 # 在这里,我做了https全加密处理,在访问http的时候自动跳转到https
 rewrite ^(.*) https://$host$1 permanent;
}

唔,配置基本就这些,挺简单的吧。小白福利。

然后我们配置文件写好后用nginx测试一下

nginx -t

妥妥的,这个过了后就能重启nginx生效了。

这里需要注意下,导入新的证书后需要重启而不是重载,nginx -s reload是普通修改配置重载。

# 停止nginx
nginx -s stop
# 启动
nginx

重启后再次访问自己的网站,啧啧,完美,左上角加上锁,提示安全的连接。诶,搞定,开心。

nginx日常操作命令

  • nginx -t 测试配置文件
  • nginx -s reload 修改配置后重载生效
  • nginx -s reopen 重新打开日志文件
  • nginx -s stop 快速停止
  • nginx -s quit

查看nginx进程

ps -ef | grep nginx

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • 详解Nginx配置SSL证书实现Https访问

    背景 由于项目需求,安全起见,需要将之前的http接口访问变成https访问,所以需要配置SSL证书.项目的架构是这样的: 基本架构是硬负载(ReadWhere)+ 软负载(Nginx)+ Tomcat集群,现在的问题是SSl证书要配置在哪里,直接配置在硬负载上?还是分别配置在Nginx和Tomcat上?还是其他的配置方法呢? 首先在硬负载上配置放弃了,然后通过在网上查找资料,发现可以只在Nginx上配置证书,就是说Nginx接入使用Https,而Nginx与Tomcat之间使用Http进行衔接

  • 微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)

    微信小程序Server环境配置详解 主要内容: 1. SSL免费证书申请步骤 2. Nginx HTTPS 配置 3. TLS 1.2 升级过程 微信小程序要求使用 https 发送请求,那么Web服务器就要配置成支持 https,需要先申请SSL证书 小程序也要求 TLS(传输层安全协议)的版本至少为 1.2,在配置好 https之后,如果 TLS 的版本较低,就涉及到升级问题 所以 Server端环境配置的主要步骤: 申请 SSL 证书 配置web服务器支持https(我使用的是nginx)

  • nginx环境下配置ssl加密(单双向认证、部分https)

    nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换(rewrite)到https,后来自动化测试结果说响应速度太慢,https比http慢慢30倍,心想怎么可能,鬼知道他们怎么测的.所以就试了一下部分页面https(不能只针对某类动态请求才加密)和双向认证.下面分节介绍. 默认nginx是没有安装ssl模块的,需要编译安装nginx时加入--with

  • nginx配置ssl证书实现https访问的示例

    一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的域名点"解析",进入解析页面后选择[添加解析]按钮会弹出如下页面: 主机记录这里选择@,记录值就是服务器ip地址,确认. 三,申请ca证书 在阿里云控制台-产品与服务-安全(云盾)-CA证书服务(数据安全),点击购买证书, 选择"免费版DV SSL",点击立即购买: 然

  • 详解nginx使用ssl模块配置支持HTTPS访问

    背景: 项目开发中用到了微信小程序,但是服务器配置URL必须是HTTPS,所以需要通过配置nginx的SSL模块来支持HTTPS访问,也就是说,要做一个网站域名为 dmsdbj.com 要求通过HTTPS://dmsdbj.com进行访问. SSL英文名为Secure Socket Layer,安全套接字层.SSL是一种数字证书,它使用ssl协议在浏览器和web server之间建立一条安全通道,数据信息在client与server之间的安全传输. 本篇博客是对这个操作步骤的详解. 前提: 1.

  • nginx使用ssl模块配置支持HTTPS访问的方法

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过https://www.localhost.cn进行访问. 10.10.100.8 www.localhost.cn 实验步骤: 1.首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 2.创建服务

  • Nginx+SSL搭建 HTTPS 网站

    一.HTTPS 是什么? 根据维基百科的解释: 复制代码 代码如下: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定.HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输.HTTPS不应与在RFC 2660中定义的安全超文本传输协议(S-HTTP)相混. HTTPS 目前已经是所有注重隐私和安全的网站的首选,随着技术的不断发展,H

  • Nginx配置SSL证书部署HTTPS网站的方法(颁发证书)

    自行颁发不受浏览器信任的SSL证书 手动颁发 xshell登录服务器,使用openssl生成RSA密钥及证书 # 生成一个RSA密钥 $ openssl genrsa -des3 -out tfjybj.key 1024 # 拷贝一个不需要输入密码的密钥文件 $ openssl rsa -in dmsdbj.key -out tfjybj_nopass.key # 生成一个证书请求 $ openssl req -new -key tfjybj.key -out tfjybj.csr 这里会提示输

  • 详解nginx使用ssl模块配置HTTPS支持

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这个文件名类似libssl-dev. 生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out serverkey

  • nginx配置ssl实现https访问的步骤(适合新手)

    前言 刚刚部署完服务器后的我满怀欣喜地访问自己的网站,看哪都哪满意.但是兴奋感一过发现,诶,为什么浏览器左上角会提示不安全?想了想,不行,我也要搞个https来,我也要上锁! HTTP协议以明文方式发送内容,不提供任何方式的数据加密.为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密. 申请证书 在这里,我直接申请腾讯云的免费证书.这里需要注意下,这亚洲诚信机构颁发的免费证书只能一个域名使用,子域名那些需要另外申请

  • nginx配置ssl实现https的方法示例

    环境说明 服务器系统:Ubuntu  18.04 64位 nginx:1.14 这篇文章主要是记录配置 https 的步骤,就不介绍申请ca证书的相关细节了 这里有免费的 ssl 证书:https://cloud.tencent.com/act/pro/ssl 我是西部数码的域名,在腾讯云申请的证书 申请证书并签发后,把证书先下载到本地 1.安装 nginx $ apt-get update // 更新软件 $ apt-get install nginx // 安装nginx 2.配置 ca 证

  • Nginx配置ssl证书(https)的全过程

    如果有防火墙的话,记得开通443端口 安装nginx请看我的另一篇文章 < Nginx安装配置详解> 准备材料: 1.申请ssl证书,这个如何申请可以到百度搜一下,因为域名服务商不同,这里不做过多赘述: 2.服务器上已安装nginx,并可以正常访问. 开始配置: 1.进入到nginx目录,查看有没有http_ssl_module模块 ./nginx -V 2.如果没有,找到源码,输入以下命令进行安装(如果有,跳转到第6步) #prefix后面的路径是你安装nginx的路径 ./configur

  • Nginx配置ssl实现https的全过程记录

    目录 一.安装Nginxssl模块 1.检查 2.安装 3.再次检查 二.部署ssl证书 三.配置nginx.conf 四.重启Nginx 总结 一.安装 Nginx ssl 模块 1.检查 检查是否已安装 ssl 模块: cd /usr/local/nginx/sbin ./nginx -V [root@server-c00ef8c3-710d-4708-9cde-2c864e7c03e2 sbin]# ./nginx -V nginx version: nginx/1.21.4 built

  • 关于Nginx配置ssl证书实现https安全访问

    目录 一.Nginx的安装与配置 安装步骤 二.SSL证书获取 三.Nginx配置 前题条件,拥有服务器与可以解析到该服务器的自己的域名. 一.Nginx的安装与配置 若已安装好了Nginx,则需查看自己的Nginx是否开启了SSL的模块功能: ./nginx -V 显示如上,则代表ssl功能已开启,否则可能出现以下错误提示: nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/ng

  • Linux Nginx 配置SSL访问实例详解

    Linux Nginx 配置SSL访问实例详解 生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): $ openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥

  • Nginx配置SSL和WSS步骤介绍

    目录 前言 一.Nginx安装 1.下载Nginx 2.安装依赖 3.编译安装Nginx 二.SSL配置 三.WSS配置 前言 近期,由于要发布微信小程序,小程序的发布必须使用已备案的服务器域名及https的请求方式,之前已经备案过一台服务器了,此次小程序的后台服务部署在另一台服务器上,又不想重新部署后台服务,所以想到在已经备案过的服务器上安装Nginx并配置SSL,通过Nginx反向代理到另一台服务器. 一.Nginx安装 笔者使用的是腾讯云服务器Centos 7.5, 安装教程网上有很多,笔

  • Nginx服务器负载均衡及ssl原理、生成ssl密钥对、Nginx配置ssl操作示例

    Nginx负载均衡 当用户访问nginx定制好的域名时,nginx通过转发到几台真实的站点,通过upstream实现 [root@centos7 vhost]# vim /usr/local/nginx/conf/vhost/load.conf upstream www.tt.com #自定义域名 { # ip_ash; #保证同一个用户始终保持在同一台机器上,即当域名指向多个IP时,保证每个用户始终解析到同一IP server 192.168.3.74:80; server 192.168.3

  • nginx配置多个前端项目实现步骤

    最近一台服务器要配置多个前端项目,当然前后端分离就需要nginx来配置了. 单个项目还好说,如下修改nginx的nginx.conf配置文件 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid /usr/local/nginx/logs/nginx.pid; events { worker

随机推荐