自签内网ip https证书并部署

文摘   2024-10-08 09:04   山西  

前面的文章介绍了几款公网ip免费申请ssl证书的工具,有需要的朋友可以查阅。

免费自动申请和续期SSL证书的平台
除了公网场景,有些特殊场景下,我们需要为内网IP配置https证书。今天介绍如何生成CA根证书和内网服务器证书,以及在不同系统中进行相关配置和部署的方法。

自签名证书的概念

自签名证书是指由用户自己生成和签名的证书,而不是由公认的证书颁发机构(如VeriSign、阿里云、腾讯云、Let's Encrypt)签名的证书。自签名证书是免费的,但通常不受浏览器和其他客户端的信任。

一、生成根证书的私钥和证书

  1. 生成CA根证书私钥
openssl genrsa -out ca.key 2048
  1. 使用私钥生成CA根证书
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.crt

操作过程中需要依次输入国家(如CN)、省份(如SHANGHAI)、城市(如SHANGHAI)、组织名称、组织代码、自签的证书IP或域名(如192.168.140.120)、邮箱等信息。

二、为内网IP(或域名)生成私钥和证书请求文件(CSR)

  1. 生成内外IP的私钥
openssl genrsa -out server.key 2048
  1. 使用私钥生成证书请求文件
openssl req -new -key server.key -out server.csr

这里填写的内容与生成CA根证书时一致(除了通用名称填写内网IP地址或域名),最后两行直接按回车即可。

三、创建证书扩展文件

  1. 创建一个名为v3.ext的文件,并添加以下内容:
authorityKeyIdentifier=keyid,issuer 
basicConstraints=CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment 
subjectAltName = @alt_names 

[alt_names]
#这里IP替换成你的内网DNS服务器ip
IP.1 = 10.*.*.*

四、使用CA的证书为内网IP(或域名)签名证书

  1. 使用命令:
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext

五、部署(Tomcat和Nginx)

  1. Nginx部署
  • 得到server.crt和server.key后,在nginx配置文件中添加以下内容:
server {
       listen       443 ssl;
       server_name  localhost;

       #ssl证书路径
       ssl_certificate ../../server.crt;
       #私钥文件路径
       ssl_certificate_key ../../server.key;
       ssl_session_cache shared:SSL:1m;
       ssl_session_timeout 5m;
       ssl_ciphers HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers on;


       location / {
           root   html;
           index  index.html index.htm;
       }
}
  1. Tomcat部署
  • A. 将证书导出成浏览器支持的.p12格式:
openssl pkcs12 -export -in server.crt -inkey server.pem -out server.p12

(需要输入一个密码)

  • B. 将.p12格式转换成jks证书:
keytool -importkeystore -srckeystore server.p12 -srcstoretype pkcs12 -destkeystore server.jks -deststoretype jks

(A步骤输入的密码和B步骤的要一致)

  • C. Tomcat 8部署,在配置文件中添加以下内容:
<Connector  port ="8443"  protocol ="org.apache.coyote.http11.Http11NioProtocol"  maxThreads ="150"  SSLEnabled ="true" >
   <SSLHostConfig >
       <Certificate  certificateKeystoreFile ="jks证书地址"  certificateKeystorePassword ="上述输入的密码"  type ="RSA"  />
   </SSLHostConfig >
</Connector >

六、客户端配置(可选)

客户端访问https的时候,如果想浏览器不带警告,需要将根证书即:ca.crt安装到本地的受信任目录中。

  • Windows(大多数人使用):双击ca.crt文件,点击安装证书,选择本地计算机,点击下一步,选择将所有证书都放入下列存储,点击浏览,选择受信任的根证书颁发机构,点击确定,点击完成。
  • Centos
sudo cp ca.crt /etc/pki/ca-trust/source/anchors/`和`sudo update-ca-trust
  • Ubuntu
sudo cp ca.crt /usr/local/share/ca-certificates/`和`sudo update-ca-certificates




进交流群收藏点赞在看本文,发送“加群
最近分享的软件资源
zabbix5.0
AI换脸
黄图检测
防蹭网
微信防撤回
文档属性修改
视频解析
文库免费
百度网盘
百度网盘加速
夸克网盘加
镜像下载网站
微信AI机器人
微信聊天分析
免费学习平台
百度文库
在线visio
接码平台
B站视频
AutoCAD 2024
视频号下载
视频解析平台
直播间录制
剪映SVIP
微信对话生成
可视化源代码
百度文库
C盘清理
接码平台
白嫖云服务器

其他软件下载分享:#软件下载清单 




9.9元好货分享

为更好地帮助公众号创作者进行带货和变现,为用户提供更好的消费体验,公众号支持从优选联盟中选择商品进行推广。我已开通优选联盟带货功能,正在推广由小店商家提供的优选联盟商品。



IT软件推荐员
专注于软件资源分享及IT技术分享,希望能得到大家的认可。
 最新文章