HTTPS证书生成和配置

HTTPS证书生成和配置

1:创建服务器私钥

openssl genrsa -des3 -out server.key 2048

输入密码:password

2:创建签名请求的证书(CSR)

openssl req -new -key server.key -out server.csr

3:加载SSL支持的Nginx并使用私钥时去除口令

cp server.key server.key.bak
openssl rsa -in server.key.bak -out server.key

输入刚才设置的密码:password

4:自动签发证书,获取CRT文件

Days代表证书有效期(天)

openssl x509 -req -days 10000 -in server.csr -signkey server.key -out server.crt

5:最后 ==> 将密钥文件移动到Nginx根目录下cert文件夹。
==> 配置文件目录下配置。

server {
        listen 443 ssl;
        server_name api.domain.com;

        ssl_certificate      cert/server.crt;           # 证书地址
        ssl_certificate_key  cert/server.key;           # 秘钥地址

        access_log   /var/log/nginx/access-api.log;
        error_log    /var/log/nginx/error-api.log;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                # try_files $uri $uri/ =404;
                proxy_set_header Host $host;
                proxy_pass https://127.0.0.1:9666/;

                # 将 http 请求转向 https
                # rewrite ^(.*)$ https://$host$1;
        }
}

 

生成证书主要命令

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

生成证书另一命令

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 3000 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.crt

-CA:指定CA证书的路径

-CAkey:指定 CA 证书的私钥路径

-CAserial:指定证书序列号文件的路径

-CAcreateserial:表示创建证书序列号文件(即上方提到的 serial 文件),创建的序列号文件默认名称为 -CA,指定的证书名称后加上 .srl 后缀

Springboot https 访问

apifox、postman

访问 Nginx(Https) 代理的 Springboot 服务显示:
Error: write EPROTO 66976008:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../../../src/third_party/boringssl/src/ssl/tls_record.cc:242

原因:这是因为 nginx 配置了 https 访问,代理之后的 Springboot 服务没有配置 https 访问,所以报错,生成证书,将 Springboot 以 ssl 的链接方式启动即可。

Springboot 生成证书

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 10000

输入密码:123456

配置下 Springboot 的 yml 文件重新启动。

 

posted @ 2024-03-10 11:48  fieldtianye  阅读(645)  评论(0编辑  收藏  举报