关于自签名证书http跳转到https以及修改nginx配置

一生成证书

1.检查是否已经安装openssl:
openssl version -a

2.生成ca证书(如果需要生成ca,执行命令)

openssl genrsa -out ca.key 2048
opennssl req -key ca.key -subj "/C=CN/ST=Chongqing/CN=183.230.102.40" -new -x509 -days 3650 -out ca.crt

3.生成自签名的SSL证书和私钥
第一步:生成私钥
# genra    生成RSA私钥
# -des3    des3算法
# -out server.key 生成的私钥文件名
# 2048 私钥长度
openssl genrsa -des3 -out server.pass.key 2048

输入一个4位以上的密码。

4.去除私钥中的密码
openssl rsa -in server.pass.key -out server.key
注意:有密码的私钥是server.pass.key,没有密码的私钥是server.key

5.生成CSR(证书签名请求)
# req 生成证书签名请求
# -new 新生成
# -key 私钥文件
# -out 生成的CSR文件
# -subj 生成CSR证书的参数
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Chongqing/L=Chongqing/O=Cm/OU=CmIot/CN=xxx.xxx.xxx.xxx(ip地址)"
字段         字段含义                               示例
/C=             Country  国家                     CN
/ST=         State or Province 省             Chongqing
/L=             Location or City 城市           Chongqing
/O=             Organization 组织或企业     xdevops
/OU=         Organization Unit 部门          xdevops
/CN=         Common Name 域名或IP      gitlab.xdevops.cn(域名)/ip地址(192.168.1.11)

6.生成自签名SSL证书
# -days 证书有效期
(没有CA证书的命令)openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
X.509证书包含三个文件:key,csr,crt。
openssl x509 -req -in server.csr -CAkey ca.key -CA ca.crt  -CAcreateserial -days 3650 -out server.crt

key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

二  修改nginx配置

扫描二维码关注公众号,回复: 8859813 查看本文章

server {
        listen       443 default_server;
        listen       [::]:443 default_server;
        server_name  www.test.com;
        access_log  logs/test-ssl.access.log  main;
        
        ssl        on;#需要打开ssl协议
        ssl_certificate      server.crt;#注释:nginx证书的路径要和生成证书对应的路径保持一致;比如在home目录下生成的证书,nginx的配置为ssl_certificate      /home/server.crt;
        ssl_certificate_key  server.key;#key也是如此 比如在home目录下生成的证书,nginx的配置为ssl_certificate _key    /home/server.key;
        
        # 协议优化(可选,优化https协议,增强安全性)
        ssl_prefer_server_ciphers  on;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#ssl_protocols协议参数
        
    
   }

nginx检查配置:./nginx -t

nginx重启:./nginx -s reload

curl https://ip/对应的目录

发布了9 篇原创文章 · 获赞 1 · 访问量 233

猜你喜欢

转载自blog.csdn.net/weixin_43857096/article/details/103721821
今日推荐