diff --git a/broker.config b/broker.config index 1632315..1292ad1 100644 --- a/broker.config +++ b/broker.config @@ -6,16 +6,16 @@ "port": "1993", "routes": [] }, - "tlsPort": "", + "tlsPort": "8883", "tlsHost": "0.0.0.0", "wsPort": "1888", "wsPath": "/ws", "wsTLS": false, "tlsInfo": { "verify": true, - "caFile": "tls/ca/cacert.pem", - "certFile": "tls/server/cert.pem", - "keyFile": "tls/server/key.pem" + "caFile": "ssl/ca/ca.pem", + "certFile": "ssl/server/cert.pem", + "keyFile": "ssl/server/key.pem" }, "acl": true, "aclConf": "conf/acl.conf" diff --git a/broker/broker.go b/broker/broker.go index 5f1a597..414f0e6 100644 --- a/broker/broker.go +++ b/broker/broker.go @@ -28,7 +28,7 @@ type Broker struct { queues map[string]int } -func NewBroker(config *Config) *Broker { +func NewBroker(config *Config) (*Broker, error) { b := &Broker{ id: GenUniqueId(), config: config, @@ -43,7 +43,7 @@ func NewBroker(config *Config) *Broker { tlsconfig, err := NewTLSConfig(b.config.TlsInfo) if err != nil { log.Error("new tlsConfig error: ", err) - return nil + return nil, err } b.tlsConfig = tlsconfig } @@ -51,12 +51,12 @@ func NewBroker(config *Config) *Broker { aclconfig, err := acl.AclConfigLoad(b.config.AclConf) if err != nil { log.Error("Load acl conf error: ", err) - return nil + return nil, err } b.AclConfig = aclconfig b.StartAclWatcher() } - return b + return b, nil } func (b *Broker) Start() { diff --git a/hmq b/hmq new file mode 100755 index 0000000..0e52a7d Binary files /dev/null and b/hmq differ diff --git a/main.go b/main.go index e1f2c52..2b39879 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,11 @@ func main() { return } - broker := broker.NewBroker(config) + broker, err := broker.NewBroker(config) + if err != nil { + log.Error("New Broker error: ", er) + return + } broker.Start() s := waitForSignal() diff --git a/ssl/ca/ca.pem b/ssl/ca/ca.pem new file mode 100644 index 0000000..4e81ff4 --- /dev/null +++ b/ssl/ca/ca.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICxjCCAa6gAwIBAgIJAIhYAJ2dlA2CMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV +BAMTCE15VGVzdENBMB4XDTE2MTIyNjAzMDI1OVoXDTE3MTIyNjAzMDI1OVowEzER +MA8GA1UEAxMITXlUZXN0Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQDH06nXICs91Bv90ECH7SPUBlJflUOR2RBxyqnkMF6dtacB1LVVJW7MetNvlWWE +R77nOqNeFDHenRcX+fZYBARTTR2XeiqfbBfNK36J+1bShX0LYU/TAQ425N53fIdl +7ODelH+0YVEUh086II/V4O+6KrrsXAGh5B+ixqsmWCC1vscVcoiJmBSpupxyRRAv +Spkx+f4V1ZWTlmdxEk5JqBt5R2Q+FEHvoIt46ODf0/JhCsYH+4WKcuqEqKjkD0wi +zQcJATIwbpbB4wT4Wg5DPsyY5ZRa8Hle8NWXPG3uJAoSmONolReOg49U/Zr3z+oo +xBDc3fnJDaJMZQr7XLs5bGl9AgMBAAGjHTAbMAwGA1UdEwQFMAMBAf8wCwYDVR0P +BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBWHqGOTUDHrb5SF8rWZ6ozLsBPTinX +a5hQVpanSOL7o3CZq0M0AGmMt/IaPqfgGbKClIttlQqq4erA5uOJUpP6X3xMj0+p +Nb8jrxdeHx5KF1wDcvwMM85sH0xneSIGGw6tZttiFkMNrRk2U4Jpy4MsfwUIiHAK +sg7ys1/r6ea7lfeQ9fZ4WNXamZXp3sFewAuTTEd8XV9cRe64B48fy/LkDGGF0rBA +z7b8QomWOlAr34TNdHpIgyD8vnL7pT02mOx2DV3TATY9cVTHpu7GsYQiS7fvaLvv +GRRDa9nFGzHEit0p5GG5iAGyCIOA/1Wy1ENdLhgB4yHpTCdSZHkNJUrY +-----END CERTIFICATE----- diff --git a/ssl/client/cert.pem b/ssl/client/cert.pem new file mode 100644 index 0000000..9126c2c --- /dev/null +++ b/ssl/client/cert.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC3zCCAcegAwIBAgIBAjANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhNeVRl +c3RDQTAeFw0xNjEyMjYwMzA4MjNaFw0xNzEyMjYwMzA4MjNaMCIxDzANBgNVBAMM +BmNsb3VkMzEPMA0GA1UECgwGY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEA40Q+bMUjxCOdDcdC2jZaX8HuNCdm6Mu1rgj8ZfyTJIzsKtv00LYd +xfdhlNFj1uq8wi/zK/cB95wBpG1Loo/WicqSP2G/A7aPnzIBPj3zzP7HdyM5EaHW +zDWLzK+f0+MmAsrp7UW/zBR5O+ScnmIWm2H7KJY36dJPKllzzw+R6a4eJ6vthBcm +nueIYrhdXnunaWzkWQqAWlSZCzD8/MfTkgAPYW7OoS6aAQugTBzhHRo1meOVIT7u +y+hmZE4kE8V98Iy1rGPV5Uz/1vSEJziJGvQkyVr3gcAv5DwLWnyX1vOXKIKOgRAz +VYB4tbfEP5tQ0jimG5ErftF/sGYFNTRslQIDAQABoy8wLTAJBgNVHRMEAjAAMAsG +A1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOC +AQEAMtVzZdj1y/TLxP7KZcqkd/Z/vdW6moo12tahDHR4vPq0NdGaHADRfZHbCBmb +JEI9Qz3CKSdKZRZ4/A3ui/ZltbvkCao9ilmhQXXDT3Yz5hxk5ZBC9+Zs1IZmrsis +Qg/cdLUx4+ei/eR0OgWyC5D9AKNzshQExKBGGojedb98VcuS5ccJKrq0kVzZ/BZQ +k1EswNC9ifKBcqPIO1rTD9T3PB7dv9ZRpxwslmgYWWsqQu9x/dnOPEHJ1yXr7KJh +47NP7OrtG21la8EcAtjA3GXDjiZ+tXIR1RMbx1iuJAQPBeddWJCPbyofdNRL59BQ +caLVQ77r0hpvnNpkafa5QptyfQ== +-----END CERTIFICATE----- diff --git a/ssl/client/key.pem b/ssl/client/key.pem new file mode 100644 index 0000000..45321f4 --- /dev/null +++ b/ssl/client/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA40Q+bMUjxCOdDcdC2jZaX8HuNCdm6Mu1rgj8ZfyTJIzsKtv0 +0LYdxfdhlNFj1uq8wi/zK/cB95wBpG1Loo/WicqSP2G/A7aPnzIBPj3zzP7HdyM5 +EaHWzDWLzK+f0+MmAsrp7UW/zBR5O+ScnmIWm2H7KJY36dJPKllzzw+R6a4eJ6vt +hBcmnueIYrhdXnunaWzkWQqAWlSZCzD8/MfTkgAPYW7OoS6aAQugTBzhHRo1meOV +IT7uy+hmZE4kE8V98Iy1rGPV5Uz/1vSEJziJGvQkyVr3gcAv5DwLWnyX1vOXKIKO +gRAzVYB4tbfEP5tQ0jimG5ErftF/sGYFNTRslQIDAQABAoIBAQCT4CzKM4AxOIcR +lw0t1V36nsIy10yDv0EI67nnVnAbwUJOJO7n+wfmby/kWFahWf3WUMLmYYO7LJx4 +89DaBsOuxstgSGa0sM5E5JGggUkoosMBBz8z9N1B5LmBRuk1QsDR4lxR0ieZT90O +lpM+D07sbdWxtATPtNNkF+5d1aC4riPaNenwPXdb88bamcqCcARExwNxVhUogu88 +frBeIfBdvNTZTmsqiqWrmAm4l1QnoQ1kCd3br4vbOlI4aQZCAPhECMaBSM7soNax +6XHUAA35vB3njNgvQYb6X2HvfktenwKXxDKDm7T8E6Ckof0kySncu2tpcIU/aHi4 +QxS2TenhAoGBAPeU48RIbKYt158xmBbiY6EzMRHI1mq+iItiYGwjt43td4l1nEX+ +UVGNnRJDffPPWIwNabPnOw9ZClwyEWgkJNJ/OS542B5QtFA5don5uAiX5OZCtQ6/ +jyedC2HLq+e4No00pBkko3sVKbUHD98qRd45PFwhC34HJGjzxj3C16ZdAoGBAOr+ +hN/2JSDOW+0dpbwVJUT1u3Ir9nOFZ3N5LDgvkE7dosKaHY9+AtUjMvhJ8Vea3jbJ +3VZrmacVtOPrrbsVWeacibqdDvRkPbQeg8vJjymLAFuvpv9WI6rih7PoiiG0HfSR +8aS14QTId31+6d9vgH/oWQuqNcTnqG3xWkK8HAuZAoGBAKE0INm9DoFld+//qre7 +0IM1gc3Cp1n5lY6sD3xaBTo0VJD8MzSf0vL28j7iEzCc4VrPoPOyq5HiuAwvzYWx +gwhMLj9ED/QtODrEL5rHLjzqKfCDnsBrmhqA9thGdTf7igmHLRHx+UA7F1z3rC3y +qGt5eQPDwGfe3qY3k+zC4QdBAoGBANvaF3J5FS9mITbr39zhY6bqx93/J2nYy3qL +SUWfqkE+tkGecj2HRRsm/U6xzyuI5pEXtw5dSLm7YytBmZ5IUX2hwnFm81DOX7Qe +QGvuPRQ+yaz93x1P97quiQtWabUykDv6NrtEtisFalVs4V17Mht4w6ZYLknz+e4y +OaHp38sxAoGAF2ZBRadUjrfYN+BKJxekdvLEzGlRICvBRdB6vDfJPNULp1cVIzbF +rNhpjJJb53OvSJwI6OwRt5ehfIg1sRjoSYXhE6yJyEBQRIRdPLbxSAaQB20P9ZlL +blA0kLm6HiGNSu1CTAst23i2WueGQgOHHdBQoLUU5xEBNFYB2S7OB74= +-----END RSA PRIVATE KEY----- diff --git a/ssl/server/cert.pem b/ssl/server/cert.pem new file mode 100644 index 0000000..b4b45b6 --- /dev/null +++ b/ssl/server/cert.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC3zCCAcegAwIBAgIBATANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhNeVRl +c3RDQTAeFw0xNjEyMjYwMzA2NTdaFw0xNzEyMjYwMzA2NTdaMCIxDzANBgNVBAMM +BmNsb3VkMzEPMA0GA1UECgwGc2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAzdKWO7e97fIYpXobgeEz+5lsA/gRAL+Fuz5YksKHqq2McffBcytq +f5aBmsdMvLPYBpfk3woecpJ5dsWEsLsIPMIs9MRg+VWljMhzioHIER1FS58jzjwq +k0QsbwMzvBNYSiKhaF69Uew/zhCYwkLh7Tf3VtJGUdE79fa1da5aZh4dX15E7pK+ +Onn1nSX/YmxjnruusFREbygXVJJBjuTZ1Orw6J/c7sk2FkOsHjXo07i2mH0UdjJ5 +NhAd7pIOzRgH5Rm1KfNKoOkvzROtsl4D7/xUeAFNz8396COKzuqCLOa3hp5mX5SQ ++FJXEOOauUpGmkmuKjuV26gIhGeAV2wxawIDAQABoy8wLTAJBgNVHRMEAjAAMAsG +A1UdDwQEAwIFIDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOC +AQEAbE43XGj2OgMeyVUy4i3NhdxIwfscW/5vkaKMAKh8L2f6LRe65adEp6ydKGys +cnEFPOngT+rHX5WA3yEZUmlqDXwpMFQsPabYbE7rDcN2jEu3G8q4L4qZ+UP+3+0t +91dNF5kUxhXmFgZfMe+TDHkoBDuvW8a/jmAV7347rVvqIIWoP4yU+8YnaZm3jPgk +239f6ZkctuKzyrwOzvVBo36OVKWXj6MF3KEJWKZxUc8oVOrp8sU1yoGSptZtfW46 +WfRnwrkS94vrN+kgehjtdmZD43W+EfKm0TblcIlY/5RBeOZrU59LCyOeLBDzlZNr +sroGBzmiIXIywGhF4FBtEWEV0Q== +-----END CERTIFICATE----- diff --git a/ssl/server/key.pem b/ssl/server/key.pem new file mode 100644 index 0000000..d101452 --- /dev/null +++ b/ssl/server/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAzdKWO7e97fIYpXobgeEz+5lsA/gRAL+Fuz5YksKHqq2McffB +cytqf5aBmsdMvLPYBpfk3woecpJ5dsWEsLsIPMIs9MRg+VWljMhzioHIER1FS58j +zjwqk0QsbwMzvBNYSiKhaF69Uew/zhCYwkLh7Tf3VtJGUdE79fa1da5aZh4dX15E +7pK+Onn1nSX/YmxjnruusFREbygXVJJBjuTZ1Orw6J/c7sk2FkOsHjXo07i2mH0U +djJ5NhAd7pIOzRgH5Rm1KfNKoOkvzROtsl4D7/xUeAFNz8396COKzuqCLOa3hp5m +X5SQ+FJXEOOauUpGmkmuKjuV26gIhGeAV2wxawIDAQABAoIBAEVFb+yvXYv85BCl +dSaUTfOK4lC/p7FRxEeNpy/VquVlvZQJ56DEZvaECCC4nPoRqU4mxw/ODwtOgvTX +a14zxIT2cTz77wtbqPkl6cUfAt/Hsy/NYrahh07DLhU6xamx9RAWca533E37LkpD +SbZv3iwBnwwofyRAQGb63n257ZDaTQugrl+j2HWnX+/ugdp2I+c+D6b8kPHqk67m +TkFO3PO4WJ17hHoeBPKDHO01pcNirQPxu7i57/YiLfgQceki1baQB+wQUqcm1pVs +5f0lchMjtLiU4c2OKZ1uMHb8RZ4HDN2zyYX0STkEtx4EKEwJ0yHtn2GaotFfpT2H +niK9kskCgYEA88jJAv6iiZwk/i03zBMAo5b00Mq/zCEgqqSSzfXGnj2DaMrfJcYZ +iE6OoyuP0sij4l+YGZ8ZYZoUQsKssUprIy8v9hSrMUQkifINFcQmobbELGs+7FBr +3WYnLGkZTARlYchbozYA2Z/s17nriNGeHsgFbLuVAu2Ejdy8Dt6k+M0CgYEA2CLW +LuM6FBSLPgjlcK9HABe5apN8chn3/iq2GRXKoS+m/bOZoD2hPWbdElJtyMeh0U1H +LEcXUfEUWxfb0z/iVJ0l8VBmuEI1DtHf2MwugJcj2NhcivM/1BLMv9SdLG29mJYz +LCfrZlF33l0SHF8ffzU/eF+wobduyQTD8rEtMxcCgYBuKHacgc+UexhEOs6Ryqxp +P5dUmaldZkLKmR81LjAX5RfyTGnVOdTjwQu3M8IDr2JOsn+aZEgl0GgDWtCKNGSB +O5tiiShqVK5mHxhGk6IZROsUX0nJovV6z+Q3ry4dKYdeThkKgSaVMCzntj12T7Ix +mpTI82J8NjPFns7jsTu+qQKBgQCC7J9XqbddwJAUVOk/WD2nFbfwkkS5DXgG07KZ +AXVMLIR4fBncUljgy/WwipQMIrmoAqrRbIL41RNiltJHZhRg8wyv3+dJSHnBb2qs +dgrZRDSnv3BXj0Aj4/t5XH6VEijeTGXVIp1azpDQ9wnoe8qlkQjQjw5895O5WxSj +Z6YcowKBgQDKGDLs1qajL/Imiv+U774Htcns3eIQJBG/5DNIFH1jmC47ktmvPonz +ch9OYv7ZKnc57zM4Q/lnNsgT74p/MmjDbrgI/q/pJTV5Gm7gq0GMrsPxri6lSX94 +tkiWwCOnyGF2x/rO92r7+DBNDuOYL+0KHAvAJmxDWKvW4dxPROeEZQ== +-----END RSA PRIVATE KEY-----