内网一键生成 LetsEncrypt HTTPS证书 - 2 - ngrok

2 篇文章 0 订阅

ngrok是在内网用户可以获得公网访问的一个非常棒的软件。

 找一台有公网地址的机器

我们找到了假设是公网A

找一个域名,用于传输流量

我们找到了,假设是ops.ac.cn,注意,ac.cn是域名哦,虽然是二级域名,但是ac.cn是中科院相关的域名机构。
而且我们要设置 泛域名 A记录到 公网A

搭建ngrok

如下脚本一气呵成, 胆儿大的可以直接试试。最终的目录是在/usr/local/ngrok下面

# 安装基本依赖
yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++
 asciidoc
yum remove -y git
wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz

tar zxvf git-2.6.0.tar.gz

cd git-2.6.0
make configure
./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
make all doc
make install install-doc install-html
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

ln -s /usr/local/git/bin/* /usr/bin/


# 安装go环境
yum install -y mercurial bzr subversion

wget https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.4.1.linux-amd64.tar.gz

mkdir $HOME/go

echo 'export GOROOT=/usr/local/go' >> ~/.bashrc 

echo 'export GOPATH=$HOME/go' >> ~/.bashrc 

echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.bashrc 

source $HOME/.bashrc 

ln -s /usr/local/go/bin/* /usr/bin/

# 编译ngrok
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="ops.ac.cn"
cd ngrok

# 为域名生成证书
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000


cp rootCA.pem assets/client/tls/ngrokroot.crt

cp server.crt assets/server/tls/snakeoil.crt

cp server.key assets/server/tls/snakeoil.key

sed '5 ilog "github.com/keepeye/log4go"' -i /usr/local/ngrok/src/ngrok/log/logger.go

# 编译服务端
cd /usr/local/go/src 
GOOS=linux GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=amd64 make release-server
GOOS=linux GOARCH=amd64 make release-client

# 编译客户端
cd /usr/local/go/src
GOOS=darwin GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=darwin GOARCH=amd64 make release-client

cd /usr/local/go/src
GOOS=windows GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=windows GOARCH=amd64 make release-client

ngrok服务启动

#!/bin/bash

cd /usr/local/ngrok/
./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="ops.ac.cn"

客户端连接

# 配置文件准备
server_addr: "ops.ac.cn:4443"
trust_host_root_certs: false

ngrok出现”bad certificate”的原因:
1. 看准了, server_address居然是直接使用的主域名,
2. 编译出来的ngrok程序一定是使用和server相同的证书产生的。如果server编译出来的在本地运行的时候出现“segment fault“,那么可以尝试着将/usr/local/ngrok放到本地,然后运行编译客户端的几行代码重新编译即可。
3. 客户端启动的配置文件中,trust_host_root_certs选项,除非你的证书是第三方的,否则就乖乖的使用false吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Sunny-Ngrok是一个将本地web应用程序公开到公共互联网上的工具。使用过程中可能会遇到一些常见错误,以下是一些常见的错误及其解决方法: 1. "Permission Denied"(权限被拒绝)错误 这种错误通常是由于没有足够的权限运行sunny-ngrok,或者没有正确地设置权限。在Linux系统上,您可能需要使用sudo来运行sunny-ngrok,或者将sunny-ngrok添加到PATH变量中。在Windows系统上,您可能需要右键单击sunny-ngrok并以管理员身份运行。 2. "Connection Refused"(连接被拒绝)错误 这种错误通常是由于您的本地web服务器没有正确地配置或运行。您应该检查您的本地web服务器的日志文件,以查看是否有任何错误消息。您也可以尝试使用不同的端口号来启动本地web服务器。 3. "Invalid Subdomain"(无效子域名)错误 这种错误通常是由于您选择的子域名已经被其他人使用了。您应该选择一个独特的子域名来避免此问题。 4. "Failed to Establish Connection"(无法建立连接)错误 这种错误通常是由于网络问题或sunny-ngrok服务器不可用。您可以尝试重新启动sunny-ngrok,并确保您的网络连接正常。 5. "Invalid Authtoken"(无效的Authtoken)错误 这种错误通常是由于您的Authtoken无效或已过期。您可以在sunny-ngrok的网站上重新生成一个新的Authtoken,并将其输入到sunny-ngrok中。 6. "Invalid Hostname"(无效主机名)错误 这种错误通常是由于您输入了错误的主机名。您应该确保您输入的主机名是正确的,并包含正确的域名后缀。 希望这些解决方案可以帮助您解决sunny-ngrok中的常见错误。 ### 回答2: Sunny-Ngrok是一个非常有用的工具,用于将本地主机暴露到公网上,方便其他人访问。然而,在使用Sunny-Ngrok的过程中,可能会遇到以下几种常见错误: 1. 连接错误:有时候在启动Sunny-Ngrok时,可能会出现无法连接的错误。这通常是因为网络连接有问题,或者是由于防火墙或路由器配置的限制导致的。解决这个问题的方法是检查网络连接是否正常,并确保没有任何防火墙或路由器配置导致的限制。 2. 认证错误:在使用Sunny-Ngrok时,用户需要提供正确的认证令牌。如果提供的认证令牌不正确,可能会遇到认证错误。解决这个问题的方法是检查认证令牌是否正确,并确保没有任何拼写错误或其他错误。 3. 端口冲突:Sunny-Ngrok使用指定的端口将本地主机暴露到公网上。如果指定的端口已经被其他进程占用,可能会出现端口冲突的错误。解决这个问题的方法是更换一个未被占用的端口,或者关闭占用该端口的其他进程。 4. 速度缓慢:有时候在使用Sunny-Ngrok时,可能会遇到速度缓慢的问题。这通常是由于网络连接不稳定或带宽限制导致的。解决这个问题的方法是检查网络连接是否稳定,并确保带宽没有被其他大量占用的任务所限制。 总而言之,尽管Sunny-Ngrok是一个很有用的工具,但在使用过程中仍然可能会遇到一些常见的错误。通过仔细检查网络连接、认证令牌、端口和带宽等因素,可以解决这些问题,并确保Sunny-Ngrok正常运行。 ### 回答3: Sunny-Ngrok是一款提供内网穿透服务的工具,常见的错误包括: 1. 连接错误:当使用Sunny-Ngrok进行内网穿透时,有可能出现无法连接的错误。这可能是由于网络设置的问题,或者是由于Ngrok服务器的负载过高导致的连接失败。解决这个问题可以尝试更改网络设置或者尝试连接其他Ngrok服务器。 2. 认证错误:在使用Sunny-Ngrok时,有时会出现认证错误的问题。这通常是由于Ngrok令牌(token)无效或过期导致的。解决这个问题可以尝试重新生成Ngrok令牌,并更新到Sunny-Ngrok的配置文件中。 3. 服务端错误:有时候Sunny-Ngrok的服务端会出现错误,导致无法正常工作。这可能是由于服务器负载过高、网络不稳定或者其他原因引起的。解决这个问题可以尝试重启Sunny-Ngrok服务端,或者联系Sunny-Ngrok的技术支持寻求帮助。 4. 版本兼容性问题:使用较老版本的Sunny-Ngrok时,有可能会遇到与当前操作系统或其他软件版本不兼容的问题。解决这个问题可以尝试升级Sunny-Ngrok到最新版本,或者查找与当前环境兼容的旧版本。 总结来说,Sunny-Ngrok的常见错误主要包括连接错误、认证错误、服务端错误和版本兼容性问题。解决这些错误通常需要检查网络设置、更新Ngrok令牌、重启服务端或者升级软件版本。如遇到问题可以参考相关文档或者联系技术支持获取帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值