当前位置: 首页 > news >正文

openvpn证书过期解决

一、问题

客户端:OpenVPN所有客户端突然无法拨入

WARNING: No server certificate verification method has been enabled

服务端:查看服务端日志发现如下错误信息:
Tue Mar 12 22:58:11 2024 TCP connection established with [AF_INET]36.5.145.85:49977
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 TLS: Initial packet from [AF_INET]36.5.145.85:49977, sid=d05e0a39 
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 WARNING: Failed to stat CRL file, not (re)loading CRL.
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 VERIFY ERROR: depth=0, error=CRL has expired: CN=xuyubing
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 OpenSSL: error:14089086:SSL routines:ssl3_get_client_certificate:c
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 TLS_ERROR: BIO read tls_read_plaintext error
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 TLS Error: TLS object -> incoming plaintext read error
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 TLS Error: TLS handshake failed
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 Fatal TLS error (check_tls_errors_co), restarting
Tue Mar 12 22:58:11 2024 36.5.145.85:49977 SIGUSR1[soft,tls-error] received, client-instance restarting

二、原因

Your certificate has expired! 也就是 证书过期了

情况1:服务器时间与客户端时间相差太多

解决办法:检查服务器时间,或者是ntp时间同步

 情况2:证书到了限制期限,默认服务端证书有效期为825天。

解决办法:重新生成证书进行替换。

步骤如下:

1、预修改,先备份,偷懒将openvpn所有全部都备份了一下
[root@openvpn openvpn]# cd /etc/ 
[root@openvpn etc]# cp openvpn openvpn20240312 -Rp
2、使用的是easy-rsa进行证书生成,删除旧的pki文件夹
[root@openvpn openvpn]# cd /etc/openvpn/easy-rsa 
[root@openvpn easy-rsa]# rm -rf pki 
[root@openvpn easy-rsa]# ./easyrsa init-pki
3、生成ca证书
[root@openvpn easy-rsa]# ./easyrsa --batch build-ca nopass
4、生成服务端证书(前面的环境变量代表证书超时天数为3650天):
[root@openvpn easy-rsa]# EASYRSA_CERT_EXPIRE=3650 ./easyrsa build-server-full server nopass
5、生成客户端证书:
[root@openvpn easy-rsa]# EASYRSA_CERT_EXPIRE=3650 ./easyrsa build-client-full client nopass
6、生成crl.pem文件:
[root@openvpn easy-rsa]# EASYRSA_CRL_DAYS=3650 ./easyrsa gen-crl
7、替换证书文件,将这些文件统一复制到/etc/openvpn:
[root@openvpn easy-rsa]# cp pki/ca.crt pki/private/ca.key pki/issued/server.crt pki/private/server.key pki/crl.pem /etc/openvpn/
8、为避免权限问题,将crl.pem的所有者改为nobody:
[root@openvpn easy-rsa]# chown nobody:nobody /etc/openvpn/crl.pem
9、生成OpenVPN所需的secret文件ta.key,并复制到相应路径:
[root@openvpn easy-rsa]# openvpn --genkey --secret ta.key 
[root@openvpn easy-rsa]# cp ta.key /etc/openvpn/
10、使用openssl命令验证证书有效性:
[root@openvpn easy-rsa]# cd /etc/openvpn/ 
[root@openvpn openvpn]# openssl verify -CAfile ca.crt -purpose sslserver server.crt 
server.crt: OK
11、重启OpenVPN服务,即可使OpenVPN加载新的证书文件。
[root@openvpn openvpn]# ps -ef|grep -v grep|grep openvpn |cut -c 9-15|xargs kill -9 
[root@openvpn openvpn]# /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf &
12、更新客户端.ovpn文件,替换新的 与等,即可重新连接

相关文章:

  • SingleSpa微前端基本使用以及原理
  • vue的导入
  • HTML 01
  • requests模块的其他方法
  • HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
  • 力扣hot100:76.最小覆盖子串(滑动窗口)
  • Android UI:ViewTree中的操作
  • 惬意上手Redis
  • 使用Anaconda创建Python指定版本的虚拟环境
  • 富格林:揭秘应对暗箱操作正规技巧
  • 【Linux进阶之路】HTTP协议
  • ARTS Week 20
  • BJFU|大数据基础考前速记(含考试大纲与复习笔记)
  • Pygame教程07:键盘常量+键盘事件的2种捕捉方式
  • SQL: 触发器/存储过程/游标的操作
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • @angular/forms 源码解析之双向绑定
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • docker python 配置
  • EOS是什么
  • Java的Interrupt与线程中断
  • JS学习笔记——闭包
  • Kibana配置logstash,报表一体化
  • mysql中InnoDB引擎中页的概念
  • MySQL主从复制读写分离及奇怪的问题
  • nodejs:开发并发布一个nodejs包
  • Objective-C 中关联引用的概念
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Swoft 源码剖析 - 代码自动更新机制
  • vue中实现单选
  • 从输入URL到页面加载发生了什么
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 前端攻城师
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 我有几个粽子,和一个故事
  • 字符串匹配基础上
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​香农与信息论三大定律
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (02)Hive SQL编译成MapReduce任务的过程
  • (C语言)二分查找 超详细
  • (层次遍历)104. 二叉树的最大深度
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十六)一篇文章学会Java的常用API
  • (四)JPA - JQPL 实现增删改查
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .apk 成为历史!