Windows本地配置Https

方式一:openssl

通过openssl 安装ssl证书搭建https:

下载 OpenSSL

配置环境变量

  •     安装之后配置环境变量: 添加新的系统变量 OPENSSL_HOME :OpenSSL安装目录。然后在Path变量末尾加:%OPENSSL_HOME%\bin;

检查验证

检查 OpenSSL 版本:

如上表示安装成功。

创建私钥(RSA) 

openssl genpkey -algorithm RSA -out /path:/name-private.key -pkeyopt rsa_keygen_bits:2048

    这个命令使用了genpkey工具,这是OpenSSL的新一代密钥生成工具,提供更多配置选项。具体细节如下:

  • genpkey:这是一个通用的密钥生成工具,支持多种算法和选项。
  • -algorithm RSA:指定生成RSA密钥。
  • -out private.key:输出密钥文件的文件名。/path:/为自己的保存路径
  • -pkeyopt rsa_keygen_bits:2048:指定密钥的位数,这里是2048位。

    生成私钥后,接下来你可以根据需要生成证书签名请求(CSR),然后生成自签名证书或与证书颁发机构(CA)交互以获取正式证书。

生成签名(CSR)

    生成CSR时需要提供一些证书信息,如国家(C)、省份(ST)、城市(L)、组织(O)、组织单位(OU)和通用名称(CN)。

最重要的是Common Name表示要使用https访问的域名

openssl req -new -key name-private.key -out /path:/name-mycsr.csr

需要记住输入的密码 name为自定义的名字

生成证书

  如果你只需要一个自签名证书用于开发或测试用途,你可以使用以下命令生成一个自签名证书。这里我们假设你希望生成一个有效期为一年的证书。/path:/为自己的保存路径。

openssl req -x509 -key name-private.key -in name-mycsr.csr -out /path:/name-mycert.crt -days 365

在使用OpenSSL生成自签名证书时,你可能会遇到以下警告:

这些警告通常不会影响基本功能,可以忽略。但了解它们的含义和如何处理它们可能对你有帮助:

1. Warning: Not placing -key in cert or request since request is used

这个警告是因为在创建证书时,OpenSSL注意到你指定了一个存在的CSR文件。它的意思是,证书中不会包含私钥的引用,因为你提供了一个CSR文件来生成证书。

通常情况下,你会使用以下命令生成自签名证书:/path:/为自己的保存路径。

openssl req -x509 -key name-private.key -in name-mycsr.csr -out /path:/name-mycert.crt -days 365

这个警告可以忽略,因为它不影响生成的自签名证书的实际使用。

2. Warning: No -copy_extensions given; ignoring any extensions in the request

   这个警告是因为你生成的CSR可能包含了一些扩展字段(如Subject Alternative Name,SAN),但是在生成证书时,你没有指定要复制这些扩展字段。

   要解决这个问题,可以在命令中使用-copy_extensions选项。首先,你需要一个OpenSSL配置文件(例如openssl.cnf),然后在生成证书时指定该文件并使用-copy_extensions选项。

示例:使用OpenSSL配置文件

创建一个自定义的OpenSSL配置文件(openssl.cnf):

[ req ]
default_bits       = 2048
default_md         = sha256
distinguished_name = req_distinguished_name
req_extensions     = req_ext

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = US
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = California
localityName                = Locality Name (eg, city)
localityName_default        = San Francisco
organizationName            = Organization Name (eg, company)
organizationName_default    = My Company
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1   = example.com
DNS.2   = www.example.com

然后,在生成CSR时使用这个配置文件:

openssl req -new -key private.key -out /path:/mycsr.csr -config openssl.cnf

最后,在生成自签名证书时,使用-copy_extensions选项:

openssl x509 -req -days 365 -in mycsr.csr -signkey private.key -out /path:/mycert.crt -extensions req_ext -extfile openssl.cnf -copy_extensions copy

这个命令会确保CSR中的所有扩展字段(如Subject Alternative Name)被复制到生成的证书中。

查看证书

你可以查看生成的私钥:

openssl rsa -in name-private.key -check

可以查看生成的CSR:

openssl req -in name-mycsr.csr -text -noout

可以查看生成的证书:

openssl x509 -in name-mycert.crt -text -noou

删除 私钥、证书:

使用命令提示符:

  • 打开命令提示符(CMD)。
  • 使用 del 命令删除文件,例如:

del private.key

del mycsr.csr

del mycert.crt

使用证书

修改nginx的配置文件:

在Nginx中,你可以这样配置:

server {
    listen 443 ssl;
    ssl_certificate /path/to/myname.crt;
    ssl_certificate_key /path/to/myname.key;
    # 其他配置
}

server {
       listen       443 ssl;
       server_name  axxx.com;

       ssl_certificate      D:/nginx/nginx-1.22.1/ssl/myname.crt;
       ssl_certificate_key  D:/nginx/nginx-1.22.1/ssl/myname.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

       location / {
           proxy_pass http://localhost:8001; # 代理到第一个Spring Boot应用
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
       }
}

server {
       listen       443 ssl;
       server_name  bxx.com;

       ssl_certificate      D:/nginx/nginx-1.22.1/ssl/myname.crt;
       ssl_certificate_key  D:/nginx/nginx-1.22.1/ssl/myname.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

       location / {
           proxy_pass http://localhost:8002; # 代理到第一个Spring Boot应用
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
       }
}

同时配置好你的hosts文件

最终效果:

如果发现配置没有生效,请检查是否配置正确,以及使用了翻墙代理导致的问题。代理过滤调自己的自定义域名即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值