使用Openssl 自签发IP证书

使用Openssl 自签发IP证书

日常交付项目中,总是有这样的场景,再使用一些融合通讯的业务时,需要HTTPS 环境,那就涉及到SSL 证书的签发

考虑到项目成本的问题,往往都是本地自签发IP 证书使用;使用openssl生成根证书,签发服务端证书,安装根证书使浏览器信任自签证书。

  • 环境: centos7.9
  • IP: 172.16.10.110 111.111.111.111

创建证书脚本:ssl.sh

[root@all ~]# mkdir ssl
[root@all ~]# cd ssl
[root@all ssl]# vim ssl.sh

证书脚本内容:

#!/bin/sh

# Generate the openssl configuration files.
echo "创建openssl.cnf------------------->"

cat > openssl.cnf << EOF
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = HN
localityName = Locality Name (eg, city)
localityName_default = ZZ
organizationalUnitName  = Organizational Unit Name (eg, section)
organizationalUnitName_default  = tx
commonName = commonName
commonName_default = tx
commonName_max  = 64
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:TRUE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 172.16.10.110
IP.2 = 111.111.111.111
EOF

echo "创建v3.ext------------------->"
cat > v3.ext << EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName=@alt_names
[alt_names]
IP.1 = 172.16.10.110
IP.2 = 111.111.111.111
EOF

echo "创建CA 根证书------------------------->"
echo "创建私钥 ca.key"
openssl genrsa -out ca.key 2048

echo "创建CA证书 ca.crt"
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

echo "生成服务器证书----------------->"
echo "创建私钥 server.key"
openssl genrsa -out server.key 2048

echo "创建服务器证书请求文件 server.csr"
openssl req -new -days 3650 -key server.key -out server.csr -config openssl.cnf

echo "创建服务器证书 server.crt"
openssl x509 -days 3650 -req -sha256 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

echo "创建pem------------------------>"
cat server.crt server.key > server.pem

echo "创建p12----------------------->"
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "server"

签发证书

#!/bin/sh

# Generate the openssl configuration files.
echo "创建openssl.cnf------------------->"

cat > openssl.cnf << EOF
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = HN
localityName = Locality Name (eg, city)
localityName_default = ZZ
organizationalUnitName  = Organizational Unit Name (eg, section)
organizationalUnitName_default  = tx
commonName = commonName
commonName_default = tx
commonName_max  = 64
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:TRUE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 172.16.10.110
IP.2 = 111.111.111.111
EOF

echo "创建v3.ext------------------->"
cat > v3.ext << EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName=@alt_names
[alt_names]
IP.1 = 172.16.10.110
IP.2 = 111.111.111.111
EOF

echo "创建CA 根证书------------------------->"
echo "创建私钥 ca.key"
openssl genrsa -out ca.key 2048

echo "创建CA证书 ca.crt"
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

echo "生成服务器证书----------------->"
echo "创建私钥 server.key"
openssl genrsa -out server.key 2048

echo "创建服务器证书请求文件 server.csr"
openssl req -new -days 3650 -key server.key -out server.csr -config openssl.cnf

echo "创建服务器证书 server.crt"
openssl x509 -days 3650 -req -sha256 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

echo "创建pem------------------------>"
cat server.crt server.key > server.pem

echo "创建p12----------------------->"
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "server"

签发好的证书

image-20230427093926460

安装根证书使浏览器信任自签证书。

把刚刚生成的server.crt 导入到本地

导入帮助手册: https://jingyan.baidu.com/article/ca41422fda393f5faf99ed0d.html

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/8242

(0)
郭靖的头像郭靖
上一篇 2023年5月25日 下午5:18
下一篇 2023年5月26日 下午5:29

相关推荐

  • Discuz! X 3.4, 更新PHP7.4后无法打开uc_server的解决方案!

    页面报错:Deprecated: Array and string offset access syntax with curly braces is deprecated in/www/wwwroot/***/uc_server/admin.php on line53 出现报错原因: PHP7.4不再支持使用大括号访问数组以及字符串的偏移 将53行修改为:

    2023年7月31日
    1.5K00
  • IIS配置Url重写实现http自动跳转https的重定向方法

    需要准备的工具和环境: 操作流程 配置URL分为全局和非全局,下图,可以看到URL重写组件内容。 选择某一个站点中的URL重写,我们称之为单独的非全局。直接选择IIS的可以配置全局,所以这里要依靠你自己的判断和选择。 打开Url重写工具 在右侧点击添加,然后选择空白规则,然后进行规则的配置。 规则命令如下 这个也是网上一大堆教程最神的地方,很多东西都是缺失的…

    2023年2月21日
    1.0K00
  • IIS7 伪静态 web.config 配置方法【详解】

    IIS7 做伪静态比较的简单方便   1.程序方面 只需要设置web.config 就可以了。 2.服务器需要安装:URL Rewrite 下载地址:http://www.iis.net/download/URLRewrite Godaddy 的主机已经安装这个插件。 本地在测试的时候 请查看自己是否安装这个插件。 注意要点 1.参数用“()” 括…

    2023年10月24日
    1.4K00
  • 如何通过宝塔面板配置ssl证书

    至于宝塔的安装以及如何安装环境搭建网站,大家可以看我们的另一篇文章: Centos7.6下宝塔安装及资产管理系统部署 基于宝塔面板配置网站ssl证书支持https访问其实很简单,不需要你懂什么技术知识。接下来你跟着我的步骤,就能成功配置网站ssl。 宝塔面板后台设置成功如图所示: 第一步:点击设置 第二步:点击右侧的SSL,选择宝塔SSL,点击申请证书 第三…

    2022年6月14日
    1.7K00
  • 网站期末架构

    用户向 发起访问请求 负载均衡器(Nginx 七层负载均衡区分移动端和PC端,LVS四层负载均衡可以处理高并发请求)将请求进行分发 Tomcat等web服务器根据请求内容,进行任务分发 如果请求内容需要快速响应,则将请求发送到MenCache、Redits等缓存数据库,然后将修改内容更新到SQL数据库集群 如果是普通的读写请求,则进行读写分离操作,读取和写入…

    2022年6月18日
    92900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信