mirror of https://github.com/bjdgyc/anylink.git
优化Dockerfile使用
This commit is contained in:
parent
9b509c33f3
commit
d8eb8ab7ed
59
Dockerfile
59
Dockerfile
|
@ -1,26 +1,43 @@
|
||||||
FROM golang:alpine as builder
|
# web
|
||||||
ENV GOPROXY=https://goproxy.io \
|
FROM node:lts-alpine as builder_node
|
||||||
GO111MODULE=on \
|
WORKDIR /web
|
||||||
GOOS=linux
|
COPY ./web /web
|
||||||
WORKDIR /root/
|
RUN npx browserslist@latest --update-db \
|
||||||
RUN apk add --no-cache --update bash git g++ nodejs npm \
|
|
||||||
&& git clone https://github.com/bjdgyc/anylink.git \
|
|
||||||
&& cd anylink/server \
|
|
||||||
&& go build -o anylink -ldflags "-X main.COMMIT_ID=$(git rev-parse HEAD)" \
|
|
||||||
&& cd ../web \
|
|
||||||
&& npm install \
|
&& npm install \
|
||||||
&& npx browserslist@latest --update-db \
|
&& npm run build \
|
||||||
&& npm run build
|
&& ls /web/ui
|
||||||
|
|
||||||
|
# server
|
||||||
|
FROM golang:alpine as builder_golang
|
||||||
|
ENV GOPROXY=https://goproxy.io \
|
||||||
|
GOOS=linux
|
||||||
|
WORKDIR /anylink
|
||||||
|
COPY . /anylink
|
||||||
|
COPY --from=builder_node /web/ui /anylink/server/ui
|
||||||
|
|
||||||
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
|
||||||
|
RUN apk add --no-cache git
|
||||||
|
RUN cd /anylink/server;go build -o anylink -ldflags "-X main.COMMIT_ID=$(git rev-parse HEAD)" \
|
||||||
|
&& /anylink/server/anylink tool -v
|
||||||
|
|
||||||
|
# anylink
|
||||||
|
FROM alpine
|
||||||
|
LABEL maintainer="github.com/bjdgyc"
|
||||||
|
|
||||||
|
ENV IPV4_CIDR="192.168.10.0/24"
|
||||||
|
|
||||||
FROM golang:alpine
|
|
||||||
LABEL maintainer="www.mrdoc.fun"
|
|
||||||
COPY --from=builder /root/anylink/server /app/
|
|
||||||
COPY --from=builder /root/anylink/web/ui /app/ui/
|
|
||||||
COPY --from=builder /root/anylink/docker /app/
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk add --no-cache pwgen bash iptables openssl ca-certificates \
|
COPY --from=builder_node /web/ui /app/ui
|
||||||
&& rm -f /app/conf/server.toml \
|
COPY --from=builder_golang /anylink/server/anylink /app/
|
||||||
&& chmod +x docker_entrypoint.sh
|
COPY ./server/conf /app/conf
|
||||||
|
COPY ./server/files /app/files
|
||||||
|
COPY docker_entrypoint.sh /app/
|
||||||
|
|
||||||
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
|
||||||
|
RUN apk add --no-cache bash iptables && ls /app
|
||||||
|
|
||||||
|
EXPOSE 443 8800
|
||||||
|
|
||||||
|
#CMD ["/app/anylink"]
|
||||||
|
ENTRYPOINT ["/app/docker_entrypoint.sh"]
|
||||||
|
|
||||||
ENTRYPOINT ["./docker_entrypoint.sh"]
|
|
||||||
|
|
47
README.md
47
README.md
|
@ -28,13 +28,19 @@ AnyLink 服务端仅在CentOS 7、Ubuntu 18.04测试通过,如需要安装在
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
> 没有编程基础的同学建议直接下载release包,从下面的地址下载 anylink-deploy.tar.gz
|
||||||
|
>
|
||||||
|
> https://github.com/bjdgyc/anylink/releases
|
||||||
|
|
||||||
> 升级 go version = 1.15
|
> 升级 go version = 1.15
|
||||||
|
>
|
||||||
|
> 需要提前安装好 golang 和 nodejs
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/bjdgyc/anylink.git
|
git clone https://github.com/bjdgyc/anylink.git
|
||||||
|
|
||||||
cd anylink
|
cd anylink
|
||||||
sh -x build.sh
|
sh build.sh
|
||||||
|
|
||||||
# 注意使用root权限运行
|
# 注意使用root权限运行
|
||||||
cd anylink-deploy
|
cd anylink-deploy
|
||||||
|
@ -42,8 +48,9 @@ sudo ./anylink -conf="conf/server.toml"
|
||||||
|
|
||||||
# 默认管理后台访问地址
|
# 默认管理后台访问地址
|
||||||
# http://host:8800
|
# http://host:8800
|
||||||
# 默认日志文件
|
# 默认账号密码
|
||||||
# log/anylink.log
|
# admin 123456
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Feature
|
## Feature
|
||||||
|
@ -70,24 +77,27 @@ sudo ./anylink -conf="conf/server.toml"
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 生成后台密码
|
# 生成后台密码
|
||||||
./anylink -passwd 123456
|
./anylink tool -p 123456
|
||||||
|
|
||||||
# 生成jwt密钥
|
# 生成jwt密钥
|
||||||
./anylink -secret
|
./anylink tool -s
|
||||||
```
|
```
|
||||||
|
|
||||||
[conf/server.toml](server/conf/server.toml)
|
[conf/server.toml](server/conf/server.toml)
|
||||||
|
|
||||||
## systemd
|
## Systemd
|
||||||
|
|
||||||
添加 systemd脚本
|
添加 systemd脚本
|
||||||
|
|
||||||
* anylink 程序目录放入 `/usr/local/anylink-deploy`
|
* anylink 程序目录放入 `/usr/local/anylink-deploy`
|
||||||
|
|
||||||
systemd 脚本放入:
|
systemd 脚本放入:
|
||||||
|
|
||||||
* centos: `/usr/lib/systemd/system/`
|
* centos: `/usr/lib/systemd/system/`
|
||||||
* ubuntu: `/lib/systemd/system/`
|
* ubuntu: `/lib/systemd/system/`
|
||||||
|
|
||||||
操作命令:
|
操作命令:
|
||||||
|
|
||||||
* 启动: `systemctl start anylink`
|
* 启动: `systemctl start anylink`
|
||||||
* 停止: `systemctl stop anylink`
|
* 停止: `systemctl stop anylink`
|
||||||
* 开机自启: `systemctl enable anylink`
|
* 开机自启: `systemctl enable anylink`
|
||||||
|
@ -100,37 +110,43 @@ systemd 脚本放入:
|
||||||
#获取仓库源码
|
#获取仓库源码
|
||||||
git clone -b dev https://github.com/bjdgyc/anylink.git
|
git clone -b dev https://github.com/bjdgyc/anylink.git
|
||||||
# 构建镜像
|
# 构建镜像
|
||||||
cd docker
|
|
||||||
docker build -t anylink .
|
docker build -t anylink .
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 生成密码
|
2. 生成密码
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -it --privileged -e mode=password -e password=< your password > --rm anylink
|
docker run -it --rm anylink tool -p 123456
|
||||||
|
#Passwd:$2a$10$lCWTCcGmQdE/4Kb1wabbLelu4vY/cUwBwN64xIzvXcihFgRzUvH2a
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 生成jwt token
|
3. 生成jwt secret
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -it --privileged -e mode=jwt --rm anylink
|
docker run -it --rm anylink tool -s
|
||||||
|
#Secret:9qXoIhY01jqhWIeIluGliOS4O_rhcXGGGu422uRZ1JjZxIZmh17WwzW36woEbA
|
||||||
```
|
```
|
||||||
|
|
||||||
4. 启动容器
|
4. 启动容器
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -itd --privileged \
|
docker run -itd --privileged \
|
||||||
-e mode=pro \
|
|
||||||
-e iproute=192.168.10.0/255.255.255.0 \
|
|
||||||
-p 443:443 \
|
-p 443:443 \
|
||||||
-p 8800:8800 \
|
-p 8800:8800 \
|
||||||
-v <your conf path>:/anylink/conf \
|
|
||||||
-v <your log path>:/anylink/log \
|
|
||||||
--restart=always \
|
--restart=always \
|
||||||
anylink
|
anylink
|
||||||
```
|
```
|
||||||
|
|
||||||
|
5. 使用自定义参数启动容器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -itd --privileged \
|
||||||
|
-e IPV4_CIDR=192.168.10.0/24 \
|
||||||
|
-p 443:443 \
|
||||||
|
-p 8800:8800 \
|
||||||
|
--restart=always \
|
||||||
|
anylink -c=/etc/server.toml --admin_addr=:8080
|
||||||
|
```
|
||||||
|
|
||||||
## Setting
|
## Setting
|
||||||
|
|
||||||
|
@ -154,7 +170,7 @@ systemd 脚本放入:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# eth0为服务器内网网卡
|
# eth0为服务器内网网卡
|
||||||
iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.255.0 -o eth0 -j MASQUERADE
|
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 使用AnyConnect客户端连接即可
|
3. 使用AnyConnect客户端连接即可
|
||||||
|
@ -196,6 +212,7 @@ sh bridge-init.sh
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
欢迎提交 PR、Issues,感谢为AnyLink做出贡献。
|
欢迎提交 PR、Issues,感谢为AnyLink做出贡献。
|
||||||
|
|
||||||
注意新建PR,需要提交到dev分支,其他分支暂不会合并。
|
注意新建PR,需要提交到dev分支,其他分支暂不会合并。
|
||||||
|
|
||||||
## Other Screenshot
|
## Other Screenshot
|
||||||
|
|
13
build.sh
13
build.sh
|
@ -1,4 +1,13 @@
|
||||||
#!/usr/bin/env bash
|
#!/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
function RETVAL(){
|
||||||
|
rt=$1
|
||||||
|
if [ $rt != 0 ]; then
|
||||||
|
echo $rt
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#当前目录
|
#当前目录
|
||||||
cpath=$(pwd)
|
cpath=$(pwd)
|
||||||
|
@ -6,6 +15,7 @@ cpath=$(pwd)
|
||||||
echo "编译二进制文件"
|
echo "编译二进制文件"
|
||||||
cd $cpath/server
|
cd $cpath/server
|
||||||
go build -o anylink -ldflags "-X main.COMMIT_ID=$(git rev-parse HEAD)"
|
go build -o anylink -ldflags "-X main.COMMIT_ID=$(git rev-parse HEAD)"
|
||||||
|
RETVAL $?
|
||||||
|
|
||||||
echo "编译前端项目"
|
echo "编译前端项目"
|
||||||
cd $cpath/web
|
cd $cpath/web
|
||||||
|
@ -14,6 +24,7 @@ npm install --registry=https://registry.npm.taobao.org
|
||||||
npm run build --registry=https://registry.npm.taobao.org
|
npm run build --registry=https://registry.npm.taobao.org
|
||||||
#npm install
|
#npm install
|
||||||
#npm run build
|
#npm run build
|
||||||
|
RETVAL $?
|
||||||
|
|
||||||
cd $cpath
|
cd $cpath
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
#! /bin/bash
|
||||||
|
version=(`wget -qO- -t1 -T2 "https://api.github.com/repos/bjdgyc/anylink/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g'`)
|
||||||
|
count=(`ls anylink | wc -w `)
|
||||||
|
wget https://github.com/bjdgyc/anylink/releases/download/${version}/anylink-deploy.tar.gz
|
||||||
|
tar xf anylink-deploy.tar.gz
|
||||||
|
rm -rf anylink-deploy.tar.gz
|
||||||
|
if [ ${count} -eq 0 ]; then
|
||||||
|
echo "init anylink"
|
||||||
|
mv anylink-deploy/* anylink/
|
||||||
|
else
|
||||||
|
if [ ! -d "/anylink/log" ]; then
|
||||||
|
mv anylink-deploy/log anylink/
|
||||||
|
fi
|
||||||
|
if [ ! -d "/anylink/conf" ]; then
|
||||||
|
mv anylink-deploy/conf anylink/
|
||||||
|
fi
|
||||||
|
echo "update anylink"
|
||||||
|
rm -rf anylink/ui anylink/anylink anylink/files
|
||||||
|
mv anylink-deploy/ui anylink/
|
||||||
|
mv anylink-deploy/anylink anylink/
|
||||||
|
mv anylink-deploy/files anylink/
|
||||||
|
fi
|
||||||
|
rm -rf anylink-deploy
|
||||||
|
sysctl -w net.ipv4.ip_forward=1
|
||||||
|
if [[ ${mode} == pro ]];then
|
||||||
|
iptables -t nat -A POSTROUTING -s ${iproute} -o eth0 -j MASQUERADE
|
||||||
|
iptables -L -n -t nat
|
||||||
|
/anylink/anylink -conf=/anylink/conf/server.toml
|
||||||
|
elif [[ ${mode} == password ]];then
|
||||||
|
if [ -z ${password} ];then
|
||||||
|
echo "invalid password"
|
||||||
|
else
|
||||||
|
/anylink/anylink -passwd ${password}
|
||||||
|
fi
|
||||||
|
elif [[ ${mode} -eq jwt ]];then
|
||||||
|
/anylink/anylink -secret
|
||||||
|
fi
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
mkdir -p ssl
|
mkdir -p /ssl
|
||||||
|
|
||||||
OUTPUT_FILENAME="example.com"
|
OUTPUT_FILENAME="vpn.xx.com"
|
||||||
|
|
||||||
printf "[req]
|
printf "[req]
|
||||||
prompt = no
|
prompt = no
|
||||||
|
@ -19,9 +19,9 @@ x509_extensions = req_x509v3_extensions
|
||||||
C = CN
|
C = CN
|
||||||
ST = BJ
|
ST = BJ
|
||||||
L = BJ
|
L = BJ
|
||||||
O = example.com
|
O = xx.com
|
||||||
OU = example.com
|
OU = xx.com
|
||||||
CN = example.com
|
CN = xx.com
|
||||||
|
|
||||||
[req_x509v3_extensions]
|
[req_x509v3_extensions]
|
||||||
basicConstraints = critical,CA:true
|
basicConstraints = critical,CA:true
|
||||||
|
@ -31,9 +31,11 @@ extendedKeyUsage = critical,serverAuth #, clientAuth
|
||||||
subjectAltName = @alt_names
|
subjectAltName = @alt_names
|
||||||
|
|
||||||
[alt_names]
|
[alt_names]
|
||||||
DNS.1 = example.com
|
DNS.1 = xx.com
|
||||||
DNS.2 = *.example.com
|
DNS.2 = *.xx.com
|
||||||
|
|
||||||
">ssl/${OUTPUT_FILENAME}.conf
|
">/ssl/${OUTPUT_FILENAME}.conf
|
||||||
|
|
||||||
|
openssl req -x509 -newkey rsa:2048 -keyout /ssl/test_vpn_key.pem -out /ssl/test_vpn_cert.pem \
|
||||||
|
-days 3600 -nodes -config /ssl/${OUTPUT_FILENAME}.conf
|
||||||
|
|
||||||
openssl req -x509 -newkey rsa:2048 -keyout /app/conf/$OUTPUT_FILENAME.key -out /app/conf/$OUTPUT_FILENAME.crt -days 3600 -nodes -config ssl/${OUTPUT_FILENAME}.conf
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
var1=$1
|
||||||
|
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
case $var1 in
|
||||||
|
"bash" | "sh")
|
||||||
|
echo $var1
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"tool")
|
||||||
|
/app/anylink "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
sysctl -w net.ipv4.ip_forward=1
|
||||||
|
iptables -t nat -A POSTROUTING -s "${IPV4_CIDR}" -o eth0+ -j MASQUERADE
|
||||||
|
# iptables -nL -t nat
|
||||||
|
|
||||||
|
/app/anylink "$@"
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,19 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDGDCCAgACCQCecQDpy/8hRTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJD
|
||||||
|
TjELMAkGA1UECAwCQkoxCzAJBgNVBAcMAkJKMQswCQYDVQQKDAJCRDELMAkGA1UE
|
||||||
|
CwwCQkQxCzAJBgNVBAMMAkNTMB4XDTIxMDMyNjA5MTkwNloXDTMxMDMyNDA5MTkw
|
||||||
|
NlowTjELMAkGA1UEBhMCQ04xCzAJBgNVBAgMAlNIMQswCQYDVQQHDAJTSDELMAkG
|
||||||
|
A1UECgwCVE0xCzAJBgNVBAsMAlRNMQswCQYDVQQDDAJDUzCCASIwDQYJKoZIhvcN
|
||||||
|
AQEBBQADggEPADCCAQoCggEBAJtDxHduS8gjI0P6txHS+cODxKjyjNiCBa7tFgSc
|
||||||
|
d9hRrzCvK4Q4M5StKJoSczmHl0C3HVoq92Gv1vENxq4irYdCrwLeOZGyt7urUlbs
|
||||||
|
PkvEoVXxfAkPpue+JewG/CvGArJeP7UGsP5IrD0Dt5X1DP677K6qf5igzyaJqYJu
|
||||||
|
RDJ5wR84BoDvY66Zc578N9tK9XusdJ63gQ5jGcG4Dneu1UX3g8lQkJ6P0xLXTh7W
|
||||||
|
u5Sjx8axbDcFxbDLxNGL1yPgAjhIRgMfaWLwuQQg4WKFsdMljv1Flz8/h91z2xo+
|
||||||
|
+E/B4YF0UFWTcWQ2TQ8w8noDqnnXVVQyOvuI3aajodml/f0CAwEAATANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAQEAd89n0eWXgO1lqMciWmS9xY8Sj/U840bPo/4Kclsm1vFNvIXu
|
||||||
|
I50PeaNiU2E5+CMk8AwXaJ5gDO7vsRxvLLRAUWZeuxSror2a0RkViEFW+UKcBuuB
|
||||||
|
Izl9giXUhB/P85+We1ma5jizqj7OpzgMkzkcTZL2M6Gw6IWY4jopvLQjiCooSiYF
|
||||||
|
wtLZjuFKfpLrPw5RgpWI4L8Hftbkmh6Q8nqcoQvgwm7rLrD5VqiTu7Rk1SXTFuXn
|
||||||
|
uuazXasWIWRVGFuFcYP1rwyOfp9HhCFKngi0w8IRnbOcaPdXydtbKMcKt5z9zQX5
|
||||||
|
BqrZ3ZfPp5HeklG7L8eQrnp4ines6YDshPnaRQ==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAm0PEd25LyCMjQ/q3EdL5w4PEqPKM2IIFru0WBJx32FGvMK8r
|
||||||
|
hDgzlK0omhJzOYeXQLcdWir3Ya/W8Q3GriKth0KvAt45kbK3u6tSVuw+S8ShVfF8
|
||||||
|
CQ+m574l7Ab8K8YCsl4/tQaw/kisPQO3lfUM/rvsrqp/mKDPJompgm5EMnnBHzgG
|
||||||
|
gO9jrplznvw320r1e6x0nreBDmMZwbgOd67VRfeDyVCQno/TEtdOHta7lKPHxrFs
|
||||||
|
NwXFsMvE0YvXI+ACOEhGAx9pYvC5BCDhYoWx0yWO/UWXPz+H3XPbGj74T8HhgXRQ
|
||||||
|
VZNxZDZNDzDyegOqeddVVDI6+4jdpqOh2aX9/QIDAQABAoIBADWT2fz4g5AJiAbS
|
||||||
|
QlAVRHjSRI+kOzQPEhT93SY0NCribRjYqaSTnEEGy8b27OoCPxBm3+sYfosoGXzP
|
||||||
|
Kys17jmJqkjMFIORb1OEWAKEvS56KM42aX3a99ZqSD29X1Ffn9ibK1K1f2gP/deE
|
||||||
|
K9rEV/qjMJZJYYRyoWkEAglvMXtU/NMRoTuFYtrJPr9sFEfpBFq97WpWiyMdLKTG
|
||||||
|
MmlN+T1CXFQj/+mpv+DDSXcwLPBxAttDYE2GeqlhntId0I6cgaEGMO42D6fnqrKi
|
||||||
|
PDilA/D6zos4o/bpRGvVBdXHqOXvX2stNHK+PvEX46GRd+OZhLh0KEcrWAx8cXs9
|
||||||
|
ZhugTyECgYEAyffRPd98acL0OhXJR9mZTgDdotl7iYq+RTZbmEvAFst3mL3LA6Ba
|
||||||
|
BTrwRLh9x8lzxoTQHHFaJL63kIrN6QAR9e3+pR0e8IX3vYCVGIlRCYB5CrE/O3Pi
|
||||||
|
B9R17tCI5dFrFXYiST38sjwrWG9+geKarbUH5AZrZEO5uw0q7+4F3TkCgYEAxM1h
|
||||||
|
Xo+xRt8RXoWZ6Cl66HhZKIvDcxkBtoNh54YLzrVpv0D+RvAWNDzRVXbbIUUpBGPN
|
||||||
|
pHrwU8G0qWr4Q/Zx+vnckqotGMTNCB7vcmB/qwF9grNW9E0rCyIYLXtJcEiclJIF
|
||||||
|
Oe406YXl7mSG1I6QjAADz8PNb4++Ct1+hVS56uUCgYAx9g/Y0nQgZY2s4L7N+1Il
|
||||||
|
LammI06gE6ZF0NCPuA1oliSbsDeMShp6uL2/AjR7O6ZcMXaZ0qCN/m/CXdPaE55d
|
||||||
|
y+X2SmHg9gL26dv4Gd/mDdXjgz01I9GCRlh2Hzf+QfPPd027+I2OObwvQEV3M+s3
|
||||||
|
lVTCX6QpRWeokfVRLPxeYQKBgDIYPVK+rNdnbJps05JfDKQkDj3d5bBkiyUUKFWw
|
||||||
|
r0y8rOA8AP25m01MtdRVXs4HNruhU/UsPgRz6DK/wdY64ySJeXXzz2rgnXgVt8mb
|
||||||
|
eqPiyzn7wISLKAu7cAATw8vLD+BZku7+DYXryW13NULhzzVzw4SdSKu/IRbO7qet
|
||||||
|
u21pAoGAd2mBJ+PWKnUkARS8gQ3Y3cagA/qGGr094P9relglRDBv/Pm7kTUt6K8B
|
||||||
|
NnpqWydcVtcrXmNzGRx4ftm18SzmTJEohF14nF9424q4aiWoNZyG8adxaI0Yqv3G
|
||||||
|
LnH8n2fzC+pf31LijBRM8DRnepah64mLF+OM/SxgVg1nP9jVUG4=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
Loading…
Reference in New Issue