nginx设置https

nginx 设置https访问模式需要ssl证书。ssl证书可以向证书颁发机构,也可以用openssl工具自己生成。如果是自己生成的证书浏览器认为是不安全的。

商业 SSL 证书、免费的证书颁发机构以及自签名证书有以下区别:

  • 商业 SSL 证书:

商业 SSL 证书是由具有权威认证的证书颁发机构(CA)签发的。
它们提供了最高级别的信任和安全性,因为它们是由受信任的第三方机构签发的。
商业 SSL 证书可以在所有主流浏览器和操作系统中良好地工作,并且不会引发任何安全警告。
商业 SSL 证书通常包括额外的服务和支持,如保险保障、站点密封和技术支持。
免费的证书颁发机构:
一些证书颁发机构(CA)提供免费的 SSL 证书,比如 Let’s Encrypt。
免费的证书颁发机构也是由受信任的第三方机构签发的,提供了一定的信任和安全性。
免费的 SSL 证书在大多数情况下可以与商业 SSL 证书相媲美,但有时可能会存在一些限制,比如证书有效期较短或不提供其他额外的服务。

  • 自签名证书:

自签名证书是由用户自行生成的,没有经过任何颁发机构的签名或认证。
自签名证书在网络上通常不受信任,因为缺乏第三方的安全验证和认证。
当用户仅在内部网络或测试环境中使用时,可以使用自签名证书来提供加密和安全保护,但在公共网络中使用会引发安全警告。
综上所述,商业 SSL 证书提供最高级别的信任和安全性,并提供额外的服务和支持。免费的证书颁发机构提供免费的 SSL 证书,一般也能满足大多数需求,但可能存在一些限制。而自签名证书主要适用于内部网络或测试环境,而在公共网络中的使用则可能会引发安全警告。

用openssl生成证书
在使用 openssl 生成 SSL 证书之前,我们需要先生成私钥。可以使用如下命令行来生成私钥:
openssl genrsa -out key.pem 1024

在这个命令中,我们使用了 genrsa 子命令,并且设置了输出文件的名称,以及私钥的长度为 1024。运行此命令会在当前文件夹中生成一个 key.pem 文件,这个文件就是我们所需要的私钥文件。

生成证书请求

有了私钥之后,我们就可以生成证书请求了。在使用 openssl 生成证书请求时,可以按照以下命令行来执行:

openssl req -new -key key.pem -out csr.pem

在这个命令中,我们使用 req 子命令,并且按照要求设置了私钥和输出文件名。在生成证书请求时,需要输入一些信息,比如你的城市,国家等信息,请根据需求填写相应的信息。

签名证书请求

生成证书请求后,我们需要将证书请求发送给证书颁发机构进行签名。为了在服务器上轻松地创建自签名的 SSL 证书,我们可以使用类似如下的命令或使用 CA 来签署证书请求:

openssl x509 -req -in csr.pem -out cert.pem -signkey key.pem -days 365

在这个命令中,我们使用了 x509 命令,并且指定了证书请求文件名和输出文件名。我们还使用了 -signkey 选项来指定要使用的私钥文件,以便签署证书。再需要指定 -days 选项均是附带了,控制证书的有效期。
这些选项组合将使用我们之前生成的私钥来签署证书请求,并将其输出到我们指定的文件 cert.pem 中。

配置nginx
在配置文件中添加 server标签

server {
    listen 443 ssl;
    server_name 127.0.0.1;

    ssl_certificate /data/vp/nginx/ssl/cert.pem; # 签名证书存放路径
    ssl_certificate_key /data/vp/nginx/ssl/key.pem; # 私钥存放路径

    # 配置SSL参数
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384;

    # 配置SSL会话缓存
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 30m;

    # 配置SSL安全性选项
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

### local 配置与http的配置保持一致
        location / {
        root   /usr/share/nginx/html/dist;
        index  index.html index.htm;
    }

   

    location /path/ {
        proxy_pass http://server/;
    }
    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location =  /50x.html {
        root   /usr/share/nginx/html/dist;
    }

}

说明

文章参考引用连接,如有问题欢迎留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值