目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 windows js win10 springboot pdf idea docker 电路 esp32 vue macOS nginx git Arduino maven ffmpeg

存档:

X

电脑本机搭建https开发环境

生成SSL证书

建立目录certs,专门用来存放证书和私钥

# 创建目录
mkdir certs
# 进入目录
cd certs/
# 生成key的配置文件
vim localhost.conf

配置文件内容如下,可自作修改

[ req ]

default_bits        = 2048							# RSA的2048是公认较比较安全的key长度
default_keyfile     = server-key.pem
distinguished_name  = subject
req_extensions      = req_ext
x509_extensions     = x509_ext
string_mask         = utf8only

[ subject ]

countryName                 = Country Name (2 letter code)
countryName_default         = US

stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = NY

localityName                = Locality Name (eg, city)
localityName_default        = New York

organizationName            = Organization Name (eg, company)
organizationName_default    = Example, LLC

commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_default          = Example Company

emailAddress                = Email Address
emailAddress_default        = test@example.com

[ x509_ext ]

subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid,issuer

basicConstraints       = CA:FALSE
keyUsage               = digitalSignature, keyEncipherment
subjectAltName         = @alternate_names
nsComment              = "OpenSSL Generated Certificate"

[ req_ext ]

subjectKeyIdentifier = hash

basicConstraints     = CA:FALSE
keyUsage             = digitalSignature, keyEncipherment
subjectAltName       = @alternate_names
nsComment            = "OpenSSL Generated Certificate"

[ alternate_names ]

DNS.1       = 192.168.XXX.XXX			# 注意这里一般改为自己本地的ip或者域名


生成SSL证书

openssl req -config localhost.conf -new -sha256 -newkey rsa:2048 -nodes -keyout localhost.key -x509 -days 365 -out localhost.crt

openssl:这是用于创建和管理OpenSSL证书,密钥和其他文件的基本命令行工具。

req:此子命令指定我们要使用X.509证书签名请求(CSR)管理。“X.509”是SSL和TLS为其密钥和证书管理所遵循的公钥基础结构标准。我们想要创建一个新的X.509证书,所以我们使用这个子命令。

-x509:通过告诉实用程序我们要创建自签名证书而不是生成证书签名请求(通常会发生)来进一步修改上一个子命令。

-nodes:这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,我们需要Nginx能够在没有用户干预的情况下读取文件。密码短语会阻止这种情况发生,因为我们必须在每次重启后输入密码。

-days 365:此选项设置证书被视为有效的时间长度。我们在这里设置了一年。

-newkey rsa:2048:这指定我们要同时生成新证书和新密钥。我们没有创建在上一步中签署证书所需的密钥,因此我们需要将其与证书一起创建。该rsa:2048部分告诉它制作一个2048位长的RSA密钥。

-keyout:这一行告诉OpenSSL在哪里放置我们正在创建的生成的私钥文件。

-out:这告诉OpenSSL在哪里放置我们正在创建的证书。

可以使用默认的也可以手动输入

然后这个目录下就会多了两个文件 localhost.crtlocalhost.key

localhost.crt,这就是生成的自签名证书(CRT 用于向CA请求证书的文件)

localhost.key,CA私钥文件

配置nginx

配置文件内容如下

server {
    listen 80;
    listen 443 ssl http2;
    server_name 192.168.XXX.XXX;				# 具体内容根据自身情况进行修改
  
   
    ssl_certificate     /etc/nginx/ssl/localhost.crt;
    ssl_certificate_key /etc/nginx/ssl/localhost.key;
  


    location / {
 	proxy_pass http://192.168.XXX.XXX:50000;			# 具体内容根据自身情况进行修改,端口根据自身情况进行修改
    }  
}

nginx重新加载配置就可以了

nginx -s reload

浏览器配置

配置完成后直接在浏览器访问肯定是不行的,出现Chrome提示NET::ERR_CERT_INVALID 无法继续打开网站问题。有两种解决方法:

方法一: 添加自用的CA证书到 证书管理器里

方法二: 在Chrome提示“您的连接不是私密连接”页面的空白区域点击一下,然后输入“thisisunsafe”(页面不会有任何输入提示),输入完成后会自动继续访问


标题:电脑本机搭建https开发环境
作者:llilei
地址:http://solo.llilei.work/articles/2021/12/10/1639130320630.html