1. 下载Easy RSA3

下载完并解压后,拷贝一份到/etc/openvpn和/home/client下

#.3版本需要独立下载个easy-rsa,该包用来制作ca证书,服务端证书,客户端证书
wget -c https://github.com/OpenVPN/easy-rsa/archive/master.zip
unzip master.zip
mv easy-rsa-master easy-rsa

2. 生成服务器端证书

cd /etc/openvpn/easy-rsa/easyrsa3

cp vars.example vars  #一般情况下,默认的配置可以满足需求,也可以根据需要修改
./easyrsa init-pki   #建立一个空的pki结构,生成一系列的文件和目录
./easyrsa build-ca   #创建ca  密码 和 cn那么需要记住
./easyrsa gen-req server nopass  #创建服务端证书  common name 最好不要跟前面的cn那么一样
./easyrsa sign server server   #签约服务端证书
./easyrsa gen-dh  #创建Diffie-Hellman

3. 生成客户端证书

#下面是客户端的证书
#首先创建一个工作的目录
cd /home/
mkdir client && cd client
cp -R ~/easy-rsa/ ./   #这是解压过的easy-rsa 而不是生成了服务端证书的easy-rsa
cd easy-rsa/easyrsa3/
cp vars.example vars

#开始生成
./easyrsa init-pki
./easyrsa gen-req orangleliu #用自己的名字,需要创建一个密码  和 cn name,自己用的 需要记住

4. 客户签约服务

#现在客户端的证书要跟服务端的交互,也就是签约,这样这个用户才能使用此vpn
#切换到server证书目录下
cd /etc/openvpn/easy-rsa/easyrsa3/
./easyrsa import-req /home/client/easy-rsa/easyrsa3/pki/reqs/orangleliu.req orangleliu  #导入req
./easyrsa sign client orangleliu #用户签约,根据提示输入服务端的ca密码

5. 整理服务端证书

cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn/keys
cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn/keys
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn/keys
cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem /etc/openvpn/keys

6. 修改OpenVPN配置文件

local 192.168.37.129
port
proto udp
dev tun
ca 

/etc/openvpn/keys/

ca.crt
cert 

/etc/openvpn/keys/

server.crt
key 

/etc/openvpn/keys/server.key

  # This file should be kept secret
dh 

/etc/openvpn/keys/

dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"

comp-lzo
max-clients
keepalive
persist-key
persist-tun
status openvpn-status.log
verb 

7. 启动OpenVPN服务

[root@localhost easyrsa3]# service openvpn start

8. 整理client证书

mkdir /home/myclient
cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /home/myclient/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/orangleliu.crt  /home/myclient/
cp /home/client/easy-rsa/easyrsa3/pki/private/orangleliu.key /home/myclient/

9. 修改Client配置

# 复制一份client.conf模板命名为client.ovpn
/sample/sample-config-files/client.conf client.ovpn
# 编辑client.ovpn
vim client.ovpn

client
dev tun
proto udp
# OpenVPN服务器的外网IP和端口
remote
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert orangleliu.crt  # client1的证书
key orangleliu.key  # client1的密钥
ns-cert-type server

comp-lzo
verb 

并将client.ovpn 拷贝到/home/myclient供客户使用

10. 将客户证书和配置文件移到客户端

将/home/myclient下的文件copy到客户端的conf文件夹下。

[转]使用EasyRsa3为OpenVPN生成密码的更多相关文章

  1. Linux下随机生成密码的命令总结

    有时候经常为如何设置一个安全.符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结.终于有一天实在忍不住了,于是学习.整理了一下如何使用Linux下 ...

  2. 利用itertools生成密码字典,多线程撞库破解rar压缩文件密码

    脚本功能: 利用itertools生成密码字典(迭代器形式) 多线程并发从密码字典中取出密码进行验证 验证成功后把密码写入文件中保存 #!/usr/bin/env python # -*- codin ...

  3. centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课

    centos shell编程4[分发系统] 服务器标准化  mkpasswd 生成密码的工具  expect讲解   expect传递参数   expect自动同步文件  expect指定host和要 ...

  4. Linux 命令行生成密码的 10 种方式

    内容来自: 10 Ways to Generate a Random Password from the Linux Command Line Linux 好玩的事儿是达成一件事情可以用上百种方式. ...

  5. Linux系统下使用pwgen生成密码的使用教程

    pwgen生成的密码易于记忆且相当安全.从技术上来说,容易记忆的密码不会比随机生成的密码更加安全.但是,在大多数情况下,pwgen生成的密码已经足够安全,除了网银密码等需要高安全等级的情况外.使用易于 ...

  6. python 3 - 写一个自动生成密码文件的程序

    1.你输入几,文件里面就给你产生多少条密码 2.密码必须包括,大写字母.小写字母.数字.特殊字符 3.密码不能重复 4.密码都是随机产生的 5.密码长度6-11 import string,rando ...

  7. five86-1 (OpenNetadmin RCE+cp命令提权+crunch生成密码字典)

    Vulnhub-Five86-1 实验环境 kali攻击机ip:192.168.56.116 Five86-1靶机ip:192.168.56.121 知识点及工具 nmap扫描 john爆破 Open ...

  8. linux下用crunch工具生成密码

    crunch是一款linux下的压缩后仅仅38k的小程序,crunch程序在2004年及以前由email为的作者编写mimayin@aciiid.ath.cx,后续版本由bofh28@gmail.co ...

  9. Linux下的openvpn配置 与 easy-rsa3的证书生成

    #注意:以下操作由服务端操作即可#PS:为什么我找不到var文件??============安装===============wget -O /etc/yum.repos.d/epel.repo ht ...

随机推荐

  1. JavaScript基础——创建函数

    JavaScript的最重要的一个部分是制作其他代码可以重用的代码.要做到这一点,你可以把代码组织成执行特定任务的函数.函数是结合在一个单一的块中,并给予一个名称的一系列代码语句.然后,你就可以通过引 ...

  2. vpn,可以连接上,但是不能访问局域网内共享的文件怎么办

    不选用VPN的上网关,就可以识别域用户访问共享文件的权限了,在VPN连接的属性里双击TCP/IP协议-高级-去掉勾选"在远程网络上使用默认网关".

  3. CLR via C#(08)-操作符

    对于操作符,我们并不陌生,例如+,-,*,%等二元操作符,以及++,!等一元操作符.但是对于非基元类型,我们需要通过一些自定义方法才能使用这些操作符.今天主要和大家分享关于操作符重载和转换操作符的知识 ...

  4. Jquery学习笔记---闭包

    1. 简要介绍 闭包可谓是js中的一大特色了,即使你对闭包没概念,你可能已经在不知不觉中使用到了闭包.闭包是什么,闭包就是一个函数可以访问到另一个函数的变量.这就是闭包,解释起来就这么一句话,不明白? ...

  5. 数据结构和算法 c#– 1.单项链表

    1.顺序存储结构 Array 1.引用类型(托管堆) 2.初始化时会设置默认值   2.链式存储结构 2.1.单向链表 2.2.循环链表 2.3.双向链表

  6. HTML5 – 1.基础

    新网页结构 1.<header> 定义了文档的头部区域 2.<nav>标签定义导航链接的部分. 3.<article>定义页面独立的内容区域. 4.<sect ...

  7. GPT vs MBR 分区 ,,, Legacy BIOS vs UEFI BIOS

    MBR与GPT两种磁盘分区格式的区别 http://itoedr.blog.163.com/blog/static/120284297201378114053240 GPT Partition Tab ...

  8. 玩玩Excel下的Power View

    作为微软平台下的数据展示工具,Power View是一个不错的选择.而在Excel 2013下,即使你没有SharePoint的实例那么你也可以玩转它.此篇讲对Excel 2013下的Power Vi ...

  9. HDU4008 Parent and son(树形DP LCA)

    先记录以1为根时每个节点子树儿子节点的最大与次小值,询问x, y时,先判断x在不在y的子树范围内,若不在,结果为y的儿子结点,后继的最小值. 若x在y的子树范围内,若y儿子最小值是x的前驱,从次小值与 ...

  10. Java Web 项目获取运行时路径 classpath

    假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么java文件夹和resources文件夹在运行时就是class ...