mirror of
https://github.com/netfun2000/rttys_zhaojh329.git
synced 2026-02-27 09:53:24 +08:00
@@ -0,0 +1,31 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFSjCCBDKgAwIBAgIJAJpYgXmFONApMA0GCSqGSIb3DQEBDQUAMGoxFzAVBgNV
|
||||
BAMMDkFuIE1RVFQgYnJva2VyMRYwFAYDVQQKDA1Pd25UcmFja3Mub3JnMRQwEgYD
|
||||
VQQLDAtnZW5lcmF0ZS1DQTEhMB8GCSqGSIb3DQEJARYSbm9ib2R5QGV4YW1wbGUu
|
||||
bmV0MB4XDTE4MTAwNTA1MTQ1OVoXDTMyMTAwMTA1MTQ1OVowYTEOMAwGA1UEAwwF
|
||||
cnR0eXMxFjAUBgNVBAoMDU93blRyYWNrcy5vcmcxFDASBgNVBAsMC2dlbmVyYXRl
|
||||
LUNBMSEwHwYJKoZIhvcNAQkBFhJub2JvZHlAZXhhbXBsZS5uZXQwggEiMA0GCSqG
|
||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCokEhSChdYmsVKOJ3rc79ZfJa2uXePUsSn
|
||||
GZkimUC+8JZTX20XoQK7bOT8zzFb2Ov41k2AIGOMgaL1AierBDD1ZooHqWYsRsBC
|
||||
Moy9rfSfm57n6F81i46Q0T+AB0CLUCTGtCAsCwe98Dx06pUYGh7LK5LIYfNVowcc
|
||||
+zPgpVHh0pWgoBVns/iPAdTDmrOc7PoARa19pktkZNZcxGytp5+4dlRyXgvPfcJm
|
||||
yseURTT78dNf0Ll2STK3Jp8hF04CGt6AcK9f0Pt2cGlycplzaEy2T1WzdSBwgc2n
|
||||
R57V/nlyZv+ZMomn5u1a0yxrYCcTmqra+inTXkNW78lVCVp+mF6DAgMBAAGjggH6
|
||||
MIIB9jAMBgNVHRMBAf8EAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDALBgNVHQ8EBAMC
|
||||
BeAwIQYJYIZIAYb4QgENBBQWEkJyb2tlciBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU
|
||||
JNiQEpT+ajpLRYGpLhQj3zTF/jIwgZwGA1UdIwSBlDCBkYAUuJpvToERNP3Ur4np
|
||||
xKIMqcAcRJ+hbqRsMGoxFzAVBgNVBAMMDkFuIE1RVFQgYnJva2VyMRYwFAYDVQQK
|
||||
DA1Pd25UcmFja3Mub3JnMRQwEgYDVQQLDAtnZW5lcmF0ZS1DQTEhMB8GCSqGSIb3
|
||||
DQEJARYSbm9ib2R5QGV4YW1wbGUubmV0ggkAybRzZGSIhQIwXAYDVR0RBFUwU4cE
|
||||
rBEAAYcQ/oAAAAAAAAAAQs///munWYcEwKhWZIcQ/oAAAAAAAAD9UOn0YCF5/4cE
|
||||
fwAAAYcQAAAAAAAAAAAAAAAAAAAAAYIJbG9jYWxob3N0MIGGBgNVHSAEfzB9MHsG
|
||||
AysFCDB0MBwGCCsGAQUFBwIBFhBodHRwOi8vbG9jYWxob3N0MFQGCCsGAQUFBwIC
|
||||
MEgwEBYJT3duVHJhY2tzMAMCAQEaNFRoaXMgQ0EgaXMgZm9yIGEgbG9jYWwgTVFU
|
||||
VCBicm9rZXIgaW5zdGFsbGF0aW9uIG9ubHkwDQYJKoZIhvcNAQENBQADggEBAE8u
|
||||
+H6wDWeVkQz3PrkKl66/fJgf8FFVsdQoz9g1Ewt01X0IaR0xWP5hPefvScsIComf
|
||||
jPqkHiHkGaib0aBKjNSqyJQbrWz8hh++cRNp78e9NaktnW5JEkKznh5tPHXHdSeC
|
||||
dRwKY1DFsebdRl2wbYOHf32xgA6x7rksS78vhPF3UfXjzTQdrvXEJzeZBFfsb54w
|
||||
6Fs0KtvP2Tedkr5+AUJmKRigimH6oc4CTR3jYKbHJSKNdx2o7kAIkD4O2phuvHj6
|
||||
9tXhpNmhu/j8F3S3HsQibAocgnSNou3JFRPkJGtpHjUDB9eiNOY84bGjIA50fgwf
|
||||
ScWnTKRoDBqMiOME49A=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAqJBIUgoXWJrFSjid63O/WXyWtrl3j1LEpxmZIplAvvCWU19t
|
||||
F6ECu2zk/M8xW9jr+NZNgCBjjIGi9QInqwQw9WaKB6lmLEbAQjKMva30n5ue5+hf
|
||||
NYuOkNE/gAdAi1AkxrQgLAsHvfA8dOqVGBoeyyuSyGHzVaMHHPsz4KVR4dKVoKAV
|
||||
Z7P4jwHUw5qznOz6AEWtfaZLZGTWXMRsraefuHZUcl4Lz33CZsrHlEU0+/HTX9C5
|
||||
dkkytyafIRdOAhregHCvX9D7dnBpcnKZc2hMtk9Vs3UgcIHNp0ee1f55cmb/mTKJ
|
||||
p+btWtMsa2AnE5qq2vop015DVu/JVQlafphegwIDAQABAoIBAHU7w9CrDAmnuscg
|
||||
EVUML20BZaC35RtdKUA+YW7av1kM4sAhgjII3WmVFr1tLJsAhz2NbmFKJXI3Ryq3
|
||||
0Pbz90j1g9JIUrNAkb54gcH6FkRba21HA9Ctuv2lSlC0uoMpviokZKu9ECldx+5Y
|
||||
qFEW+Yu8Rl3vIdnRhMT3QOFgmU5Akqzlx+/S93y1enGcbUafM3AQY56Gsc8ITfZH
|
||||
4IJsFihQv6+Vh2cNa40GNldLCEux5u77tU7R7+djThIEOsdjKXNkPCdX+qrI85/z
|
||||
PlJCFs5aokeH7hBELTzbNKViTtK8Vrh1EEy+Gji5ZGr45oZsOOskHv13/0QEbEYS
|
||||
ipTZ9GECgYEA0rHB4W2OSrSonrWZjOMFMxhHqmfDTPvruXeEok1Ul9++C4UrimX/
|
||||
Voqyx11h7JCV7YfqyqQvJ6GdiGJ/BLvj26+IPYAE7jxGTINEhgYh8471Hf6yyLyb
|
||||
5qqtlRjC6HqXXzrjHwmZM/6LXy5NLAS9EESotLC73ddEYXtBoLl6EH0CgYEAzM9S
|
||||
ur3ayAcSpnUKNhkolG3j+cppEabZa0PMWDaxBm3PcoJdWpZr08vRh1ECEEi0Peez
|
||||
C7hh5Y73+Ql7y31EpKWPxitCdWixl4aybsmhVF2wh0S7Nj/wQCvBXhh+1Aus+cdR
|
||||
RuMl/M9afKxogBVAxb94VY/HpBbBTvHCD4DuWv8CgYBeGL9DA1+6I4bvIqGKF1Wa
|
||||
JSzUgPTrK9NyCFu29JxkG6vPj1ELxVPM/bKscRsrwMMEy1/j0oGwzHADmiGqJpOz
|
||||
6GgLN2J8V3T59OIkjRaapOz50WddWUazNOTDIsTheOajxDPtB6dhXjw2bQJQN2mM
|
||||
m21RDWFJyTsj4h1EP7GxLQKBgQCJ1sJ78cirtK7lnoGH1TjNZIP5GjPKcHuFSHTf
|
||||
rbdId2EVVQ2VKQVa3qKeqnN0GCpOO4Dx0173i1fyoGJTmnQ3R0HTAkxRDmvvafTu
|
||||
wP618/QZpbVFlpSP66LRPDUnatA4rt9RkRCA6+CfZb1S7nrQW8OV+hVHpxTkl6qe
|
||||
moxQawKBgGLqiny9i0Hi+rhU6MhWCMI0ngR8bB2KmvWlc/IlsYrICjfVBHD2Z7V2
|
||||
L+0orf6zIgrRmYpUeJIEmyYapeiZV10hNVj++upAm/KxTTeeSYgCnSVtWtJ6u7XV
|
||||
tw7DqAubSuVtG1Jogez8EST1/d3z8qiZDNAAGKnUSQc2nYUFlYBh
|
||||
-----END RSA PRIVATE KEY-----
|
||||
Executable
+291
@@ -0,0 +1,291 @@
|
||||
#!/usr/bin/env bash
|
||||
#(@)generate-CA.sh - Create CA key-pair and server key-pair signed by CA
|
||||
|
||||
# Copyright (c) 2013-2016 Jan-Piet Mens <jpmens()gmail.com>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. Neither the name of mosquitto nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#
|
||||
# Usage:
|
||||
# ./generate-CA.sh creates ca.crt and server.{key,crt}
|
||||
# ./generate-CA.sh hostname creates hostname.{key,crt}
|
||||
# ./generate-CA.sh client email creates email.{key,crt}
|
||||
#
|
||||
# Set the following optional environment variables before invocation
|
||||
# to add the specified IP addresses and/or hostnames to the subjAltName list
|
||||
# These contain white-space-separated values
|
||||
#
|
||||
# IPLIST="172.13.14.15 192.168.1.1"
|
||||
# HOSTLIST="a.example.com b.example.com"
|
||||
|
||||
set -e
|
||||
|
||||
export LANG=C
|
||||
|
||||
kind=server
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
kind=server
|
||||
host=$(hostname -f)
|
||||
if [ -n "$1" ]; then
|
||||
host="$1"
|
||||
fi
|
||||
else
|
||||
kind=client
|
||||
CLIENT="$2"
|
||||
fi
|
||||
|
||||
[ -z "$USER" ] && USER=root
|
||||
|
||||
DIR=${TARGET:='.'}
|
||||
# A space-separated list of alternate hostnames (subjAltName)
|
||||
# may be empty ""
|
||||
ALTHOSTNAMES=${HOSTLIST}
|
||||
ALTADDRESSES=${IPLIST}
|
||||
CA_ORG='/O=OwnTracks.org/OU=generate-CA/emailAddress=nobody@example.net'
|
||||
CA_DN="/CN=An MQTT broker${CA_ORG}"
|
||||
CACERT=${DIR}/ca
|
||||
SERVER="${DIR}/${host}"
|
||||
SERVER_DN="/CN=${host}$CA_ORG"
|
||||
keybits=2048
|
||||
openssl=$(which openssl)
|
||||
MOSQUITTOUSER=${MOSQUITTOUSER:=$USER}
|
||||
|
||||
# Signature Algorithm. To find out which are supported by your
|
||||
# version of OpenSSL, run `openssl dgst -help` and set your
|
||||
# signature algorithm here. For example:
|
||||
#
|
||||
# defaultmd="-sha256"
|
||||
#
|
||||
defaultmd="-sha512"
|
||||
|
||||
function maxdays() {
|
||||
nowyear=$(date +%Y)
|
||||
years=$(expr 2032 - $nowyear)
|
||||
days=$(expr $years '*' 365)
|
||||
|
||||
echo $days
|
||||
}
|
||||
|
||||
function getipaddresses() {
|
||||
/sbin/ifconfig |
|
||||
grep -v tunnel |
|
||||
sed -En '/inet6? /p' |
|
||||
sed -Ee 's/inet6? (addr:)?//' |
|
||||
awk '{print $1;}' |
|
||||
sed -e 's/[%/].*//' |
|
||||
egrep -v '(::1|127\.0\.0\.1)' # omit loopback to add it later
|
||||
}
|
||||
|
||||
|
||||
function addresslist() {
|
||||
|
||||
ALIST=""
|
||||
for a in $(getipaddresses); do
|
||||
ALIST="${ALIST}IP:$a,"
|
||||
done
|
||||
ALIST="${ALIST}IP:127.0.0.1,IP:::1,"
|
||||
|
||||
for ip in $(echo ${ALTADDRESSES}); do
|
||||
ALIST="${ALIST}IP:${ip},"
|
||||
done
|
||||
for h in $(echo ${ALTHOSTNAMES}); do
|
||||
ALIST="${ALIST}DNS:$h,"
|
||||
done
|
||||
ALIST="${ALIST}DNS:localhost"
|
||||
echo $ALIST
|
||||
|
||||
}
|
||||
|
||||
days=$(maxdays)
|
||||
|
||||
if [ -n "$CAKILLFILES" ]; then
|
||||
rm -f $CACERT.??? $SERVER.??? $CACERT.srl
|
||||
fi
|
||||
|
||||
if [ ! -f $CACERT.crt ]; then
|
||||
|
||||
# ____ _
|
||||
# / ___| / \
|
||||
# | | / _ \
|
||||
# | |___ / ___ \
|
||||
# \____/_/ \_\
|
||||
#
|
||||
|
||||
# Create un-encrypted (!) key
|
||||
$openssl req -newkey rsa:${keybits} -x509 -nodes $defaultmd -days $days -extensions v3_ca -keyout $CACERT.key -out $CACERT.crt -subj "${CA_DN}"
|
||||
echo "Created CA certificate in $CACERT.crt"
|
||||
$openssl x509 -in $CACERT.crt -nameopt multiline -subject -noout
|
||||
|
||||
chmod 400 $CACERT.key
|
||||
chmod 444 $CACERT.crt
|
||||
chown $MOSQUITTOUSER $CACERT.*
|
||||
echo "Warning: the CA key is not encrypted; store it safely!"
|
||||
fi
|
||||
|
||||
|
||||
if [ $kind == 'server' ]; then
|
||||
|
||||
# ____
|
||||
# / ___| ___ _ ____ _____ _ __
|
||||
# \___ \ / _ \ '__\ \ / / _ \ '__|
|
||||
# ___) | __/ | \ V / __/ |
|
||||
# |____/ \___|_| \_/ \___|_|
|
||||
#
|
||||
|
||||
if [ ! -f $SERVER.key ]; then
|
||||
echo "--- Creating server key and signing request"
|
||||
$openssl genrsa -out $SERVER.key $keybits
|
||||
$openssl req -new $defaultmd \
|
||||
-out $SERVER.csr \
|
||||
-key $SERVER.key \
|
||||
-subj "${SERVER_DN}"
|
||||
chmod 400 $SERVER.key
|
||||
chown $MOSQUITTOUSER $SERVER.key
|
||||
fi
|
||||
|
||||
if [ -f $SERVER.csr -a ! -f $SERVER.crt ]; then
|
||||
|
||||
# There's no way to pass subjAltName on the CLI so
|
||||
# create a cnf file and use that.
|
||||
|
||||
CNF=`mktemp /tmp/cacnf.XXXXXXXX` || { echo "$0: can't create temp file" >&2; exit 1; }
|
||||
sed -e 's/^.*%%% //' > $CNF <<\!ENDconfig
|
||||
%%% [ JPMextensions ]
|
||||
%%% basicConstraints = critical,CA:false
|
||||
%%% nsCertType = server
|
||||
%%% keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||
%%% nsComment = "Broker Certificate"
|
||||
%%% subjectKeyIdentifier = hash
|
||||
%%% authorityKeyIdentifier = keyid,issuer:always
|
||||
%%% subjectAltName = $ENV::SUBJALTNAME
|
||||
%%% # issuerAltName = issuer:copy
|
||||
%%% ## nsCaRevocationUrl = http://mqttitude.org/carev/
|
||||
%%% ## nsRevocationUrl = http://mqttitude.org/carev/
|
||||
%%% certificatePolicies = ia5org,@polsection
|
||||
%%%
|
||||
%%% [polsection]
|
||||
%%% policyIdentifier = 1.3.5.8
|
||||
%%% CPS.1 = "http://localhost"
|
||||
%%% userNotice.1 = @notice
|
||||
%%%
|
||||
%%% [notice]
|
||||
%%% explicitText = "This CA is for a local MQTT broker installation only"
|
||||
%%% organization = "OwnTracks"
|
||||
%%% noticeNumbers = 1
|
||||
|
||||
!ENDconfig
|
||||
|
||||
SUBJALTNAME="$(addresslist)"
|
||||
export SUBJALTNAME # Use environment. Because I can. ;-)
|
||||
|
||||
echo "--- Creating and signing server certificate"
|
||||
$openssl x509 -req $defaultmd \
|
||||
-in $SERVER.csr \
|
||||
-CA $CACERT.crt \
|
||||
-CAkey $CACERT.key \
|
||||
-CAcreateserial \
|
||||
-CAserial "${DIR}/ca.srl" \
|
||||
-out $SERVER.crt \
|
||||
-days $days \
|
||||
-extfile ${CNF} \
|
||||
-extensions JPMextensions
|
||||
|
||||
rm -f $CNF
|
||||
chmod 444 $SERVER.crt
|
||||
chown $MOSQUITTOUSER $SERVER.crt
|
||||
fi
|
||||
else
|
||||
# ____ _ _ _
|
||||
# / ___| (_) ___ _ __ | |_
|
||||
# | | | | |/ _ \ '_ \| __|
|
||||
# | |___| | | __/ | | | |_
|
||||
# \____|_|_|\___|_| |_|\__|
|
||||
#
|
||||
|
||||
if [ ! -f $CLIENT.key ]; then
|
||||
echo "--- Creating client key and signing request"
|
||||
$openssl genrsa -out $CLIENT.key $keybits
|
||||
|
||||
CNF=`mktemp /tmp/cacnf-req.XXXXXXXX` || { echo "$0: can't create temp file" >&2; exit 1; }
|
||||
# Mosquitto's use_identity_as_username takes the CN attribute
|
||||
# so we're populating that with the client's name
|
||||
sed -e 's/^.*%%% //' > $CNF <<!ENDClientconfigREQ
|
||||
%%% [ req ]
|
||||
%%% distinguished_name = req_distinguished_name
|
||||
%%% prompt = no
|
||||
%%% output_password = secret
|
||||
%%%
|
||||
%%% [ req_distinguished_name ]
|
||||
%%% # O = OwnTracks
|
||||
%%% # OU = MQTT
|
||||
%%% # CN = Suzie Smith
|
||||
%%% CN = $CLIENT
|
||||
%%% # emailAddress = $CLIENT
|
||||
!ENDClientconfigREQ
|
||||
|
||||
$openssl req -new $defaultmd \
|
||||
-out $CLIENT.csr \
|
||||
-key $CLIENT.key \
|
||||
-config $CNF
|
||||
chmod 400 $CLIENT.key
|
||||
fi
|
||||
|
||||
if [ -f $CLIENT.csr -a ! -f $CLIENT.crt ]; then
|
||||
|
||||
CNF=`mktemp /tmp/cacnf-cli.XXXXXXXX` || { echo "$0: can't create temp file" >&2; exit 1; }
|
||||
sed -e 's/^.*%%% //' > $CNF <<\!ENDClientconfig
|
||||
%%% [ JPMclientextensions ]
|
||||
%%% basicConstraints = critical,CA:false
|
||||
%%% subjectAltName = email:copy
|
||||
%%% nsCertType = client,email
|
||||
%%% extendedKeyUsage = clientAuth,emailProtection
|
||||
%%% keyUsage = digitalSignature, keyEncipherment, keyAgreement
|
||||
%%% nsComment = "Client Broker Certificate"
|
||||
%%% subjectKeyIdentifier = hash
|
||||
%%% authorityKeyIdentifier = keyid,issuer:always
|
||||
|
||||
!ENDClientconfig
|
||||
|
||||
SUBJALTNAME="$(addresslist)"
|
||||
export SUBJALTNAME # Use environment. Because I can. ;-)
|
||||
|
||||
echo "--- Creating and signing client certificate"
|
||||
$openssl x509 -req $defaultmd \
|
||||
-in $CLIENT.csr \
|
||||
-CA $CACERT.crt \
|
||||
-CAkey $CACERT.key \
|
||||
-CAcreateserial \
|
||||
-CAserial "${DIR}/ca.srl" \
|
||||
-out $CLIENT.crt \
|
||||
-days $days \
|
||||
-extfile ${CNF} \
|
||||
-extensions JPMclientextensions
|
||||
|
||||
rm -f $CNF
|
||||
chmod 444 $CLIENT.crt
|
||||
fi
|
||||
fi
|
||||
@@ -93,6 +93,17 @@ func httpAuth(w http.ResponseWriter, r *http.Request) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func pathExist(path string) bool {
|
||||
_, err := os.Stat(path)
|
||||
if err == nil {
|
||||
return true
|
||||
}
|
||||
if os.IsNotExist(err) {
|
||||
return false
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func main() {
|
||||
port := flag.Int("port", 5912, "http service port")
|
||||
cert := flag.String("cert", "", "certFile Path")
|
||||
@@ -194,6 +205,18 @@ func main() {
|
||||
staticfs.ServeHTTP(w, r)
|
||||
})
|
||||
|
||||
if *cert == "" {
|
||||
if pathExist("rttys.crt") {
|
||||
*cert = "rttys.crt"
|
||||
}
|
||||
}
|
||||
|
||||
if *key == "" {
|
||||
if pathExist("rttys.key") {
|
||||
*key = "rttys.key"
|
||||
}
|
||||
}
|
||||
|
||||
if *cert != "" && *key != "" {
|
||||
rlog.Println("Listen on: ", *port, "SSL on")
|
||||
rlog.Fatal(http.ListenAndServeTLS(":"+strconv.Itoa(*port), *cert, *key, nil))
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
#! /bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: rttys
|
||||
# Required-Start: $remote_fs $syslog
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Execute the xterminal_broker command.
|
||||
# Description:
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
RTTYSPID=/var/run/rttys.pid
|
||||
PORT=5912
|
||||
|
||||
do_start () {
|
||||
start-stop-daemon --start --make-pidfile --pidfile $RTTYSPID --background --exec /usr/local/bin/rttys -- -port $PORT -cert /etc/rttys/rttys.crt -key /etc/rttys/rttys.key
|
||||
}
|
||||
|
||||
do_stop () {
|
||||
start-stop-daemon --stop --pidfile $RTTYSPID
|
||||
sleep 1
|
||||
rm -f $RTTYSPID
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
do_start
|
||||
;;
|
||||
stop)
|
||||
do_stop
|
||||
;;
|
||||
restart|reload|force-reload)
|
||||
echo "Error: argument '$1' not supported" >&2
|
||||
exit 3
|
||||
;;
|
||||
status)
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 start|stop" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIID8TCCAtmgAwIBAgICCCUwDQYJKoZIhvcNAQELBQAwczELMAkGA1UEBhMCQ04x
|
||||
EDAOBgNVBAgMB1RpYW5qaW4xEDAOBgNVBAcMB1RpYW5qaW4xFTATBgNVBAoMDENI
|
||||
SU5BU1NMIEluYzEpMCcGA1UEAwwgQ0hJTkFTU0wgQ2VydGlmaWNhdGlvbiBBdXRo
|
||||
b3JpdHkwHhcNMTgwMzAzMTQyODQ2WhcNMTkwMzAzMTQyODQ2WjCBgzELMAkGA1UE
|
||||
BhMCQ04xEDAOBgNVBAgMB3NpY2h1YW4xEjAQBgNVBAoMCXpoYW9qaDMyOTETMBEG
|
||||
A1UECwwKd2lmaWRvZy1uZzEQMA4GA1UEAwwHd2lmaWRvZzEnMCUGCSqGSIb3DQEJ
|
||||
ARYYamlhbmh1aXpoYW8zMjlAZ21haWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
||||
AQ8AMIIBCgKCAQEAyD8gd3XIJvkYeySP2q0toYsfvhlA+lceUPiMi16U1nR3TD5U
|
||||
uTNGsvYBDMiR7vG0NKClFT73u/d8HBcYcTBgbhHfBkz4v9S5aMdUYQsUMQEITBdE
|
||||
hPEeXVqqj796Lu6iEkNUFrtam2h3t+kYODjbszk2woBtohaRWfNyOB/AJH6Stv4l
|
||||
jkPYwt9NHcKQSm9kjcGsAqQwkgVd4UfHX2G20gaTijimeHlJL2wv61uLBUvYux0E
|
||||
+98KIcEIYu3BVAfoO2Omg/o73cwH+sFTswEXPuXirwrOzmJ850WBLScLkSKSATrY
|
||||
1YdU6CRaJuP/POFfSqAhn/mPRNQFU5fAaDcfEwIDAQABo34wfDAJBgNVHRMEAjAA
|
||||
MC8GCWCGSAGG+EIBDQQiFiBDSElOQVNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
||||
eTAdBgNVHQ4EFgQU9XS4dW6j1r1lEOIHWkoJx3zSqqgwHwYDVR0jBBgwFoAUXB8j
|
||||
+sjhITHC2Df2iPzSb8JUQzMwDQYJKoZIhvcNAQELBQADggEBAFsaq5qehwp0zMqY
|
||||
cb0IX5/f4ZnscX587SM/NhORODa0p/bT3EwG3grtljHhRW+s/4c4gPgilrzV0Fxn
|
||||
Y5FodLfFdbNVjhgeSrDCRmwIvKSe81LYOe+rbfTBF0g3YYWDwcwc8tFvcwWBxqWn
|
||||
4F+u9aIKgHU7HXQokqCxEOTFjrAHVJf1OqtRMTXlBBb6ypVdHn0glfSxOIC/Vp2T
|
||||
5UR7oVdD4E8ASqe7Q7MmTeY377CRagfd0WD9XK7o+cbKkLLW1QWc8ht1rHjGp+/2
|
||||
gmkxEmpX2Xhpv1FX/b6sj1dTmOc2bXBzpvV6yonRMu5dYsOrdDwbH/T05X+hCFW9
|
||||
G86ZLFY=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,28 +0,0 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIPyB3dcgm+Rh7
|
||||
JI/arS2hix++GUD6Vx5Q+IyLXpTWdHdMPlS5M0ay9gEMyJHu8bQ0oKUVPve793wc
|
||||
FxhxMGBuEd8GTPi/1Llox1RhCxQxAQhMF0SE8R5dWqqPv3ou7qISQ1QWu1qbaHe3
|
||||
6Rg4ONuzOTbCgG2iFpFZ83I4H8AkfpK2/iWOQ9jC300dwpBKb2SNwawCpDCSBV3h
|
||||
R8dfYbbSBpOKOKZ4eUkvbC/rW4sFS9i7HQT73wohwQhi7cFUB+g7Y6aD+jvdzAf6
|
||||
wVOzARc+5eKvCs7OYnznRYEtJwuRIpIBOtjVh1ToJFom4/884V9KoCGf+Y9E1AVT
|
||||
l8BoNx8TAgMBAAECggEAK/JmvrDzt1HtxIDWrWhaXly5H7BNKWPbPGv/9EpSoeo3
|
||||
kF0RnP+a4YXJ3zNZi7YyFWa4NDx4hCEhdMzAyX6TezSi3LAh23/lHRC5/P5AdSzD
|
||||
1Gc6225LerN+QUQFna0zlox+NOrzTK4VsCAQ963K0b+ZvAARj4QibDpYc+bL9XYK
|
||||
fVrZSnGJhNY3S6YjTF4oyMejKxk+HPhgCVEcZCHiC0RmXVqfETe6Cu0UtDPTTK5Q
|
||||
IXYYZ0HLsqaGWwGCWm/ji6HjNCG1dUhUp/yZR+7X45Utok3Rd3wo0kxZGJ7LHH4N
|
||||
541qcFbaT3rX39uPypuK5dSc5lb98FAOl79jL/wnUQKBgQDjEycf6VKZYf8d/MMV
|
||||
4+0YrFV7sdi0k4TC+lFmfJZVFHqcPn99q3cO2b9npgLDpQpwpcyBGMh6hWufVXXA
|
||||
ctrxg8vjKBHG8MT70Lulvi+G3Fldw7EHVVQGEHRqPaSzA035JyVanDs6lgoqjj9b
|
||||
BuMQidIeaj2t28pEhc0rYstW6wKBgQDhwRzoCirKrtJDWclDkjbzkGUfoAKMz2p2
|
||||
mSAs2xCdrx8vtFzUXcCLsvlXa+hIEe4O5cUZg+WLPfXiV4gtF74PTkmYADXRTUBl
|
||||
dHzfjVWQINEYFsWOEP5eYB0VWiA52JUaCuHuHILt6CSy3h8xPtnq+/oEFTeqh/2C
|
||||
XoN+seKeeQKBgQDUE1c/HpLeXf/+6crp7u3JVWqhFADo5b3gvBi6NzHQVEgPFO/N
|
||||
Vw7i98sj6pA6WTHe83qEN7lFdMaHETHgg2SonAcYKJwxyTywUspuiampsrJkOBhm
|
||||
WPMYltWjQ99GsZdpU343miJXHTpxdFkHku8OyylK7r6cWeIXDUAJfUOb8QKBgFbk
|
||||
ZoTljOzwdxvXTkFE4QPEmzed9f1OxHKbo6fANdgLlJxe9rAC2d6rZ49/iCtdQ1zW
|
||||
kZOtkceTdLXG7TI2BkCL6IWp5w0Fh/jE6l99XeaYywJTmXyCC/Y1VlxmkSrSsykP
|
||||
8UAeF0MM7DswhZ8FywjILcYuiHuJ1ki8qi40t745AoGAT/5imiro59cHMbbGEQb+
|
||||
42oBY7RxeHkk6+8WTJA6kqv8tuOK3gvDFm5cRJVCduVF/Jf+276IMoTMEb8kBGQA
|
||||
R3CRsYwLPrpdWu2q9Ho1KtH+azt/d+3uglT9g3fhvFieNIwkRgaNNJQC6wmddDeG
|
||||
MEYv4HO1LykipsDVsFadVCk=
|
||||
-----END PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user