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

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

说明

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

方法一

step1: 首先生成私钥文件

openssl genrsa -out server.key 2048

参数说明

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

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

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生成私钥

openssl genrsa -out server.key 2048

在这里插入图片描述

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

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

根据命令行向导来进行信息输入:
在这里插入图片描述

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

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

在这里插入图片描述

使用

将生成的server.keyserver.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"
...
...

相关推荐

  1. 使用openssl生成签名证书

    2023-12-23 07:38:04       39 阅读
  2. 使用openssl生成签名证书

    2023-12-23 07:38:04       31 阅读
  3. OpenSSL签名证书

    2023-12-23 07:38:04       37 阅读
  4. 使用OpenSSL生成签名SSL/TLS证书和私钥

    2023-12-23 07:38:04       68 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 07:38:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 07:38:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 07:38:04       82 阅读
  4. Python语言-面向对象

    2023-12-23 07:38:04       91 阅读

热门阅读

  1. 鼠标悬浮在树组件节点上展示当前节点名称

    2023-12-23 07:38:04       56 阅读
  2. Linux基础 - Linux ARM 原子读写

    2023-12-23 07:38:04       53 阅读
  3. [node] Node.js的全局对象Global

    2023-12-23 07:38:04       48 阅读
  4. ip addr和ifconfig区别

    2023-12-23 07:38:04       62 阅读
  5. vue3 H5项目中实现PDF预览

    2023-12-23 07:38:04       57 阅读
  6. 面试经典150题(42-44)

    2023-12-23 07:38:04       52 阅读
  7. Vue中转换HTML为PDF

    2023-12-23 07:38:04       59 阅读
  8. NPM介绍与使用

    2023-12-23 07:38:04       55 阅读
  9. SRE 与 DevOps 的不同之处

    2023-12-23 07:38:04       59 阅读
  10. Google 提示:切忌滥用 DORA 指标

    2023-12-23 07:38:04       46 阅读