电脑本机搭建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.crt
和 localhost.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
”(页面不会有任何输入提示),输入完成后会自动继续访问