Windows.OpenSSL生成ssl证书配置到nginx

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

一、下载OpenSSL程序安装 到E:\soft\OpenSSL-Win64

二、打开一个CMD控制台窗口,设置好openssl.cnf路径

E:
cd E:\soft\OpenSSL-Win64\bin
set OPENSSL_CONF=E:\soft\OpenSSL-Win64\bin\openssl.cnf

三、在当前目录 E:\soft\OpenSSL-Win64\bin 里创建两个子目录

mkdir certs
mkdir private

生成一个随机数

openssl rand -out private/.rand 1000

四、生成根证书

根证书是用于证书签发的,证书的签发机构都有自己的根证书。他们的根证书一般已经打包到浏览器的受信任的根证书目录里了,我们自己签发的需要手工安装到这个目录。

4.1 生成根证书私钥文件(pem文件)

OpenSSL使用PEM(Privacy Enbanced Mail)格式来保存私钥,生成私钥的命令如下:

openssl genrsa -aes256 -out private/cakey.pem 1024

这一步会提示输入密码,

Enter pass phrase for private/cakey.pem:
请输入一个容易记忆的密码,以后产生其它文件时需要输入。我输入了:123456

该命令的相关参数解释如下:
 

该命含义如下:

genrsa: 使用RSA算法产生私钥
-aes256: 使用256位密钥的AES算法对私钥进行加密
-out: 输出文件的路径
1024: 指定私钥长度

4.2 生成根证书签发申请文件(csr文件)
这一步需要使用上一步生成的私钥(pem文件),所以你需要记住上一步自己设置的密码。
生成证书请求文件(csr文件)的命令如下:
 

openssl req -new -key private/cakey.pem -out private/ca.csr -subj "/C=CN/ST=Shanghai/L=Shanghai/O=Mediasoft/OU=Mediasoft/CN=Mediasoft"

该命令含义如下:

req: 执行证书签发命令
-new: 新证书签发请求
-key: 指定私钥路径,这个是上一步产生的key文件
-out: 输出的csr文件的路径,这个是即将产生的请求文件,需要用这个文件来产生证书
-subj: 证书相关的用户信息(subject的缩写),

-subj 用于设置 Subject Name
其中 C 表示 Country or Region
ST 表示 State/Province
L 表示 Locality
O 表示 Organization
OU 表示 Organization Unit
CN 表示 Common Name

4.3 签发根证书(cer文件)

用上一步生成的csr,可以自己签发根证书:

openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey private/cakey.pem -in private/ca.csr -out certs/ca.cer

该命令的相关参数如下:

x509: 生成x509格式证书
-req: 输入csr文件
-days: 证书的有效期(天)
-sha1: 证书摘要采用sha1算法
-extensions: 按照openssl.cnf文件中配置的v3_ca项添加扩展
-signkey: 签发证书的私钥,第一步生成的Key文件
-in: 要输入的csr文件,上一步生成的csr文件
-out: 输出的cer证书文件

将在certs目录里生成的ca.cer根证书文件,根证书文件可以用于再次签发server证书,即用于nginx的服务器端证书,或client证书。 

根证书通常是用于证书签发机构签发证书与分发到支持的客户端的,例如分发到Chrome浏览器的安装程序里,大多数情况下,你无法让Google等浏览器厂家将你的根证书安装到它们浏览器的证书根目录 ,但可以自己手工安装刚才签发的根证书。手工安装步骤:步骤 1-〉2-〉3-〉4如下:
Windows.OpenSSL生成ssl证书配置到nginx,https,ssl,https,网络协议,nginx,windows

 五、用根证书签发server端证书

5.1 生成服务端证书私钥

openssl genrsa -aes256 -out private/server.key 1024
 
openssl rsa -in private/server.key -out certs/server.key

5.2 生成请求文件

openssl req -new -key private/server.key -out private/server.csr -subj "/C=CN/ST=myprovince/L=mycity/O=myo/OU=myou/CN=mycn"

-subj 用于设置 Subject Name
其中 C 表示 Country or Region
ST 表示 State/Province
L 表示 Locality
O 表示 Organization
OU 表示 Organization Unit
CN 表示 Common Name

5.3 使用根证书签发服务端证书

openssl x509 -req -days 7304 -CA certs/ca.cer -CAkey private/cakey.pem -CAserial ca.srl -CAcreateserial -in private/server.csr -out certs/server.crt

这里有必要解释一下这几个参数:

-CA:指定CA证书的路径,为第四步生成的CA证书
-CAkey: 指定CA证书的私钥路径
-CAserial: 指定证书序列号文件的路径
-CAcreateserial: 表示创建证书序列号文件(即上方提到的serial文件),创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl后缀

 在x509指令中,有多种方式可以指定一个将要生成证书的序列号,可以使用set_serial选项来直接指定证书的序列号,也可以使用-CAserial选项来指定一个包含序列号的文件。所谓的序列号是一个包含一个十六进制正整数的文件,在默认情况下,该文件的名称为输入的证书名称加上.srl后缀,比如输入的证书文件为ca.cer,那么指令会试图从ca.srl文件中获取序列号,可以自己创建一个ca.srl文件,也可以通过-CAcreateserial选项来生成一个序列号文件。
 

六、使用server证书

如果是Nginx,将以上certs目录里生成的 server.key与server.crt复制到证书相关目录下并进行相关设置即可。

server {
        listen       443 ssl;
        server_name  i569.cn;
 
        ssl_certificate      ssl/server.crt;
        ssl_certificate_key  ssl/server.key;
 
        ...
}

七:浏览器打开域名链接 显示不安全   

     NET::ERR_CERT_COMMON_NAME_INVALID错误。

Windows.OpenSSL生成ssl证书配置到nginx,https,ssl,https,网络协议,nginx,windows

可以使用扩展文件来在证书里嵌入扩展信息,例如DNS信息,IP信息,DNS信息的文件样本如下(手工生成的一个文件:private/server.dns.ext):

keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName
 
[SubjectAlternativeName]
DNS.1=test.domain.com

  IP扩展信息的样本如下(手工生成的一个文件:private/server.ip.ext):

keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName
 
[SubjectAlternativeName]
IP.1=172.0.0.1

嵌入DNS信息以支持解决Chrome浏览器备用名的命令如下:

openssl x509 -req -days 7304 -CA certs/ca.cer -CAkey private/cakey.pem -CAserial ca.srl -CAcreateserial -in private/server.csr -out certs/server.crt -extfile private/server.dns.ext

 -extfile   使用 server.dns.ext (域名访问)或者 server.ip.ext (ip 直接访问)

八:linux nginx 配置命令

查看nginx 执行文件地址  ps -ef|grep nginx
查看nginx.conf文件地址 locate  nginx.conf
测试配置文件 /usr/sbin/nginx  -tc  /etc/nginx/nginx.conf 
启动nginx /usr/sbin/nginx  -c  /etc/nginx/nginx.conf 
重启nginx /usr/sbin/nginx -s reload -c  /etc/nginx/nginx.conf 
停止nginx  kill -9 nginxPid

九:参考nginx.conf配置文章来源地址https://www.toymoban.com/news/detail-819761.html

include /etc/nginx/myconfig/*.conf;
server {
     listen 80;
     server_name i569.cn;
     rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
     listen 80;
     server_name www.i569.cn;
      rewrite ^/(.*)$ https://i569.cn/$1 permanent;
}

server {
        listen 443;
        server_name i569.cn; #填写绑定证书的域名
        ssl on; #1.21.5版本需将该行注释
        ssl_certificate /etc/nginx/myconfig/i569.cn.pem; #或者.crt文件
        ssl_certificate_key  /etc/nginx/myconfig/i569.cn.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 / {
             proxy_pass http://127.0.0.1:569;
        }
}

到了这里,关于Windows.OpenSSL生成ssl证书配置到nginx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索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)
  • Nginx实现自签名SSL证书生成与配置

    目录 一、Nginx实现自签名SSL证书生成与配置 1、名词介绍 2、生成私钥 3、生成公钥 4、生成解密的私钥key  5、签名生成证书 6、配置证书并验证 7、加密私钥的报错 1、名词介绍 ①key 私钥  = 明文--自己生成(genrsa ) ②csr 公钥  = 由私钥生成 ③crt  证书  = 公钥 + 签名(自签

    2024年02月15日
    浏览(52)
  • Nginx中实现自签名SSL证书生成与配置

    (1)生成私钥(Private Key):使用 OpenSSL 工具生成一个私钥文件,用于加密和解密传输的数据。 (2)生成证书签名请求(Certificate Signing Request,CSR):使用 OpenSSL 工具生成一个 CSR 文件,其中包含你的服务器公钥和相关的信息,以便用于生成证书。 (3)自签名证书生成:使

    2024年02月09日
    浏览(48)
  • Nginx配置https协议,基于Linux自签(OPENSSL生成SSL自签证书)

    第1步:生成私钥 执行如下命令生成一个RSA私钥 //生成rsa私钥,des3算法,1024位强度,ssl.key是秘钥文件名。 openssl genrsa -des3 -out ssl.key 1024 然后他会要求你输入这个key文件的密码,由你随便设置。 由于以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。 但是生

    2024年01月21日
    浏览(57)
  • openssl给内网IP生成ca证书(ssl证书)

     注意:大家自己按照自己的目录创建就行,我的直接放在/opt目录下了。  注意:申请的时候会让大家填一些参数,下面是参数说明及示例:  注意:这一步也会输入参数,要和上一次输入的保持一致       注意:这一步也会输入参数,要和前两次输入的保持一致  注意:

    2024年02月07日
    浏览(45)
  • 通过openSSL生成自签名的SSL证书

    自签名证书:就是 指的根证书,就是颁发者:和颁发给: 是相同的。证书的签名是用证书里的公钥对应的私钥进行的签名。这样的证书除非是受信任的颁布机构颁发f,一般是不被第三方信任。一般用于内部使用及测试使用。 下面介绍生成证书的方法: 1. 生成私 钥 要创建

    2023年04月17日
    浏览(46)
  • SSL/TLS 介绍以及如何利用openssl生成证书

    SSL:Secure Socket Layer 安全套接字层。 TLS:Transport layer Security 传输层安全性,是一种加密协议。 到2020年,SSL以及TLS1.0,TLS1.1已被弃用 Authentication:通信双方可以确认双方的身份,不被黑客拦截信息伪造身份。 Confidentiality:通信的内容经过加密,更加安全,不被授权的用户无法识别

    2024年02月04日
    浏览(49)
  • MAC: 自己制作https的ssl证书(自己签发免费ssl证书)(OPENSSL生成SSL自签证书)

    现在https大行其道, ssl又是必不可少的环节. 今天就教大家用开源工具openssl自己生成ssl证书的文件和私钥 MAC电脑 openssl工具自行搜索安装 1、终端执行命令 2、输入密码,这里会输入两次. 填写一样即可. 随意填写一个. 下一步就会删除这个密码 3、输入密码,这里会输入两次. 填写

    2024年04月14日
    浏览(87)
  • 【ssl认证、证书】openssl genrsa 命令详解、生成和查看密钥内容

    相关文章: //-----------Java SSL begin---------------------- 【ssl认证、证书】SSL双向认证和SSL单向认证的区别(示意图) 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系 【ssl认证、证书】SSL双向认证java实战、keytool创建证书 【ssl认证、证书】Wireshark抓包分析 【s

    2024年02月11日
    浏览(38)
  • Nginx增加SSL证书时报错:/configure: error: SSL modules require the OpenSSL library.

    /configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl= option. 步骤1:先看下是否安装OpenSSL依赖 注意:nginx不是全局的话需要到nginx的sbin里面执行

    2024年02月05日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包