Nginx中实现自签名SSL证书生成与配置

这篇具有很好参考价值的文章主要介绍了Nginx中实现自签名SSL证书生成与配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.相关介绍

1.生成步骤

(1)生成私钥(Private Key):使用 OpenSSL 工具生成一个私钥文件,用于加密和解密传输的数据。

(2)生成证书签名请求(Certificate Signing Request,CSR):使用 OpenSSL 工具生成一个 CSR 文件,其中包含你的服务器公钥和相关的信息,以便用于生成证书。

(3)自签名证书生成:使用 OpenSSL 工具根据 CSR 文件和私钥生成自签名的 SSL 证书文件。

(4)Nginx 配置修改:在 Nginx 配置文件中进行相应的修改,包括指定 SSL 证书文件路径、私钥文件路径以及其他相关的 SSL 配置项。

总:Nginx 就可以使用自签名 SSL 证书来启用 HTTPS,实现加密和安全的通信。需要注意的是,自签名 SSL 证书不会受到公信任的证书颁发机构(Certificate Authority)认可,因此浏览器会显示安全警告。在生产环境中,建议使用由受信任的证书颁发机构签发的证书来获得更高的安全性和可信度。

2.相关名词介绍

(1)私钥(Key)生成:使用 OpenSSL 工具的 “genrsa” 命令生成私钥文件,其中私钥是用于加密和解密数据的关键。

(2)公钥(CSR)生成:使用私钥文件生成证书签名请求(Certificate Signing Request,CSR),其中包含公钥和其他相关信息。这个公钥将被用于生成证书,并在浏览器连接时进行身份验证。

(3)证书(CRT)生成:证书由公钥(CSR)和签名组成。签名可以是自签名的,也可以是由受信任的证书颁发机构(CA)签名的。通过使用私钥(Key)与公钥(CSR)进行签名,最终生成证书(CRT)文件。

(4)服务器证书(server.crt):生成的证书文件就是服务器证书,通常命名为 “server.crt”。

(5)签名过程:签名是使用私钥(Key)与公钥(CSR)进行证书生成的过程。私钥用于对公钥进行签名,以确保证书的完整性和身份验证。

二.Nginx中实现自签名SSL证书生成与配置

1.私钥生成

#关闭防火墙及安全机制
systemctl stop firewalld.service 
setenforce 0
#在root用户的家目录下执行
cd ~
#使用ssl生成私钥名为 server.key
openssl genrsa -des3 -out server.key 1024
#回车,输入自定义的密码文本,此处设置为12345
#输入两次

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

#查看生成的私钥
cat server.key 

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

2.公钥生成

#基于创建的server.key私钥创建server.csr公钥
openssl req -new -key server.key -out server.csr
#查看私钥加密的内容
openssl req -text -in server.csr -noout

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

3.生成解密的私钥key

#基于server.key私钥生成server.key.unsecure的解密私钥
openssl rsa -in server.key -out server.key.unsecure

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

4.签名生成证书

方法1:
#方法1需要输入密码,私钥密码为12345
openssl  x509 -req -days 1000 -in server.csr -signkey server.key -out server.crt
#使用私钥和公钥生成server.crt签名证书,-days为1000天 -in指定公钥,-signkey指定私钥,生成的前面证书为server.crt
方法2:
openssl x509 -req -days 1000 -in server.csr -signkey server.key.unsecure -out server1.crt
#使用解密私钥和公钥生成server.crt签名证书,-days为1000天 -in指定公钥,-signkey指定解密后的私钥,生成的前面证书为server.crt

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

#查看证书的内容,server.crt内容
openssl x509 -text -in server.crt -noout

Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https

5.配置证书并验证

#安装额外源 并安装启动nginx
yum install epel-release -y 
yum install nginx -y
systemctl start nginx 

vim  /etc/nginx/nginx.conf
#编辑nginx主配置文件文件末尾添加内容如下
server {
    listen       443 ssl ;    
    server_name localhost ;
    ssl_certificate "/root/server.key";
    ssl_certificate_key "/root/server.key.unsecure";
}
#创建一个新的server模块,注意要在http模块里面,listen表示监听端口,server_name写主机地址或localhost都可以,ssl_certificate是签名证书的路径,ssl_certificate_key是私钥的路径,本文私钥路径写了解密后的私钥,写加密时的私钥有报错
#重启nginx到浏览器上访问验证
systemctl start nginx 

报错信息:

[root@test5 ~]# systemctl restart nginx
Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
[root@test5 ~]# systemctl status nginx.service
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 四 2023-09-07 17:47:46 CST; 15s ago
Process: 54283 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 55399 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)
Process: 55397 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 54285 (code=exited, status=0/SUCCESS)

9月 07 17:47:46 test5 systemd[1]: Starting The nginx HTTP and reverse proxy se…
9月 07 17:47:46 test5 nginx[55399]: nginx: [emerg] cannot load certificate key…e)
9月 07 17:47:46 test5 nginx[55399]: nginx: configuration file /etc/nginx/nginx…ed
9月 07 17:47:46 test5 systemd[1]: nginx.service: control process exited, code=…=1
9月 07 17:47:46 test5 systemd[1]: Failed to start The nginx HTTP and reverse p…r.
9月 07 17:47:46 test5 systemd[1]: Unit nginx.service entered failed state.
9月 07 17:47:46 test5 systemd[1]: nginx.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

解决方案:里面使用解密后的私钥文件路径

vim /etc/nginx/nginx.conf

ssl_certificate “/root/server.crt”;

systemctl start nginx 

6.登录

https://192.168.198.15/
Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https
Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https
Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https
Nginx中实现自签名SSL证书生成与配置,ssl,nginx,https文章来源地址https://www.toymoban.com/news/detail-705367.html

到了这里,关于Nginx中实现自签名SSL证书生成与配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx中的SSL加密配置与证书生成

    目录 整体的操作流程 二、然后配置网络yum源 并mv CentOS-* backup挪动到上层目录中  三、在家目录下解压 文件,并查看  四、添加两种编译模块./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module 五、 显示少什么就 yum install (缺少的依赖的名称)-devel 下图为

    2024年02月05日
    浏览(49)
  • Windows.OpenSSL生成ssl证书配置到nginx

    生成一个随机数 根证书是用于证书签发的,证书的签发机构都有自己的根证书。他们的根证书一般已经打包到浏览器的受信任的根证书目录里了,我们自己签发的需要手工安装到这个目录。 OpenSSL使用PEM(Privacy Enbanced Mail)格式来保存私钥,生成私钥的命令如下: 这一步会提

    2024年01月24日
    浏览(45)
  • 【Nginx】【SSL】Nginx上配置ssl证书

    配置需要有自己的域名和云主机;域名已经解析到主机;安装好Nginx 阿里云搜索 ssl 找到 数字证书管理服务/SSL 证书免费证书;申请一个免费的 选择其他类型,图中的Nginx的不行;将其放到服务器的 /opt/ssl/sslOther/ 目录下 使用Vim编辑在 /etc/nginx 目录下的 nginx.conf 文件 1、解除掉

    2024年02月03日
    浏览(48)
  • Openssl生成证书-nginx使用ssl

    方式一: 1、生成服务器私钥。 2、根据服务器私钥文件生成证书请求文件,这个文件中会包含申请人的一些信息,所以执行下面这行命令过程中需要用户在命令行输入一些用户信息,随便填写,一路回车即可。 3、生成CA机构的私钥,命令和生成服务器私钥一样,只不过这是

    2024年02月05日
    浏览(56)
  • openssl生成nginx ssl证书的简单方法

    [root@172-17-218-79 ~]# mkdir cert [root@172-17-218-79 ~]# cd cert/ [root@172-17-218-79 cert]# openssl genrsa -out server.key 1024 Generating RSA private key, 1024 bit long modulus (2 primes) ......+++++ .........................................+++++ e is 65537 (0x010001) [root@172-17-218-79 cert]# openssl req -new -key server.key -out server.csr You are abo

    2024年02月04日
    浏览(52)
  • Nginx -- -- 配置SSL证书

    目录 一,阿里云申请免费SSL证书 一,打开阿里云SSL证书页面,点击“选购SSL证书” 2,登录到阿里云SSL证书管理控制台 3,、选择“SSL证书”–“免费证书”–“证书申请” 4,、填写证书申请表单  二,nginx添加ssl证书 1,关闭防火墙核心防护  2,创建一个存放证书的文件放到

    2024年02月21日
    浏览(46)
  • Nginx配置SSL证书

    目录 获得证书 步骤一:购买证书  步骤二:申请证书 ​编辑  下载证书及证书转换:​编辑 配置SSL证书 在Nginx目录下新建certificate目录,并将下载好的证书/私钥等文件上传至该目录(与配置文件同级目录)。  最后修改一下nginx.conf文件即可,如下:  修改完成后保存配置

    2024年02月07日
    浏览(50)
  • nginx ssl证书配置

    linux服务器nginx配置ssl证书。 需要申请域名,然后域名解析到你的外网服务器ip,然后申请ssl证书,然后下载下来,一般ssl证书可以通过 tomcat nginx等配置; 更新yum gcc安装 其他安装 找个位置下载nginx 例如: /usr/local/src 当前位置解压 创建用户组 用户 进入解压后的目录 编译nginx并加入

    2024年04月10日
    浏览(40)
  • nginx 配置ssl证书方法

    到域名商哪里,申请免费ssl证书,选择nginx版本的sll证书下载到本地,在服务器中进入我们的nginx目录,新建一个ssl文件夹,把下载好的ssl证书解压放到里面。 到nginx目录下打开nginx.conf,修改下方,代码到文本中保存即可。 保存后重启nginx: nginx -s reload 在 http 块中,定义了两

    2024年02月06日
    浏览(38)
  • Nginx 的SSL证书配置

    目录 1.申请域名,证书下载 2.准备站点源代码 3.修改nginx 对应网站的配置文件 4.修改 host 文件 http协议访问的网站默认会显示不安全,因为数据默认是明文传输的 https是http+ssl,ssl是加密协议,通过证书来进行加密的,安装了证书的网站才会用https协议来交 互,才不会提示不安

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包