基于ip地址通过openssl生成自签名证书

最近在配置geo的时候,客户说自己使用的是自签证书,然后是通过ip地址和端口的方式访问gitlab,比较好奇这块,因此对证书的生成和使用做了一些整理,对此网上关于这部分资料也很多,不过作为记录,也算是自己的部分实践。

文章目录

    • 说明
    • 方法一
      • [step1: 首先生成私钥文件](#step1: 首先生成私钥文件)
      • [step2: 根据私钥文件成自签名的证书文件](#step2: 根据私钥文件成自签名的证书文件)
    • 方法二
      • [step1: 通过openssl生成私钥](#step1: 通过openssl生成私钥)
      • [step2: 根据私钥生成证书申请文件csr](#step2: 根据私钥生成证书申请文件csr)
      • [step3: 使用私钥对证书申请进行签名从而生成证书](#step3: 使用私钥对证书申请进行签名从而生成证书)
    • 使用

说明

通过openssl genrsa 命令可以用来生成 RSA 私有秘钥,但是并不会生成公钥,因为公钥提取自私钥。生成时是可以指定私钥长度和密码保护。

方法一

step1: 首先生成私钥文件

bash 复制代码
openssl genrsa -out server.key 2048

参数说明

  • -out filename:将生成的私钥保存至filename文件,若未指定输出文件,则为标准输出。
  • -numbits:指定要生成的私钥的长度(单位 bit),默认为1024。该项必须为命令行的最后一项参数。

step2: 根据私钥文件成自签名的证书文件

bash 复制代码
openssl req -new -x509 -days 3650 -key server.key -out server.crt -subj "/C=CN/ST=BeiJing/L=BeiJing/O=BJ/OU=BJ/CN=192.168.31.40/emailAddress=wkx323@163.com"

参数说明

  • -new:说明生成证书请求文件。
  • -x509:说明生成自签名证书。
  • -days:指定自签名证书的有效期限,默认为30天。
  • -key:指定使用已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合。
  • -newkey:-newkey是与-key互斥的,-newkey是指在生成证书请求或者自签名证书的时候自动生成密钥,然后生成的密钥名称由-keyout参数指定。当指定newkey选项时,后面指定rsa:bits说明产生rsa密钥,位数由bits指定。 如果没有指定选项-key和-newkey,默认自动生成秘钥。
  • -out :指定生成的证书请求或者自签名证书名称。
  • -subj:指定用户的信息。

方法二

step1: 通过openssl生成私钥

bash 复制代码
openssl genrsa -out server.key 2048

step2: 根据私钥生成证书申请文件csr

bash 复制代码
openssl req -new -key server.key -out server.csr

根据命令行向导来进行信息输入:

step3: 使用私钥对证书申请进行签名从而生成证书

bash 复制代码
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

使用

将生成的server.key 和 server.crt拷贝到服务器的证书位置即可。如gitlab的配置:

复制代码
...
...
external_url 'https://192.168.31.40:19090'
letsencrypt['enable'] = false
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
...
...
相关推荐
FungLeo18 小时前
成为全栈·基础补充·域名、DNS 与 HTTPS 证书
https·网络基础·网站部署·tls证书·成为全栈·域名 dns
Lsetea2 天前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
达梦产品与服务3 天前
SQLark V4.2 更新 | 新增TiDB、SSL安全连接、数据字典、清空/截断表等40+项功能已上线!
数据库·安全·tidb·ssl
2501_916008894 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
李纲明6 天前
WordPress 登录后跳回登录页或提示「Cookie 被阻止」:先核站点 URL 与 HTTPS 一致,再查安全插件与 CDN
https·登录·cdn·wordpress·cookie·devdiy·站点url
云-缩影6 天前
拆解微信小程序后端架构:ECS、RDS、SSL 和 VPC 怎么配合
微信小程序·架构·ssl
李纲明6 天前
WordPress 全站 HTTPS 后仍显示「不安全」或锁被划掉:先清混合内容,再核证书链与强制跳转
网络协议·安全·https·wordpress·devdiy·混合内容
Lsetea6 天前
Certbot webroot申请SSL证书总是404:Nginx挑战目录与路径映射检查
运维·nginx·https·ssl证书·certbot
山乐191317 天前
麒麟系统,安装Nginx并配置https证书
运维·nginx·https
tedcloud1237 天前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源