Bläddra i källkod

Merge branch 'bys20201228' of http://code.pacsonline.cn/zskk_bg/yuanchengpasc into bys20201228

刘桂岩 4 år sedan
förälder
incheckning
b8d1fa2d6f
3 ändrade filer med 665 tillägg och 0 borttagningar
  1. 619 0
      index的副本.vue
  2. 19 0
      tls.crt
  3. 27 0
      tls.key

+ 619 - 0
index的副本.vue

@@ -0,0 +1,619 @@
+<template>
+<div class="zh_login">
+	<div class="zh_login_logo"><img src="../../../static/img/logo-2.png" /><div>服务热线:010-53932350</div></div>
+	<div class="zh_login_box">
+		<div class="zh_login_in">
+			<div class="zh_login_from" v-if="this.confirm == 1">
+				<div class="zh_login_h">确认登陆</div>
+				<el-form ref="loginForm" :model="loginForm"  auto-complete="on" label-position="left">
+					<el-form-item class="zh_txt">
+						<el-input
+						  v-model="loginForm.iphoneNumber"
+						  placeholder="请输入手机号"
+						  name="iphoneNumber"
+						  type="text"
+						  auto-complete="on"
+              :disabled="true"
+						/>
+      				</el-form-item>
+	  				<div class="zh_tips"><span></span></div>
+					<el-form-item prop="verificationCode" class="zh_txt">
+						<el-input
+						  :type="passwordType"
+						  v-model="loginForm.verificationCode"
+						  placeholder="请输入验证码"
+						  name="verificationCode"
+						  auto-complete="on"
+						  @keyup.enter.native="handleLogin"
+              style="width: 60%;float: left"
+            />
+            <el-button type="primary"  style="width: 40%;float: left" @click="getMessageAgain">{{innerText}}</el-button>
+					</el-form-item>
+					<div class="zh_tips"><span></span></div>
+					<div class="zh_goPwd"></div>
+
+					<el-button type="primary" class="zh_loginBtn" @click.native.prevent="getCheckCode('ruleForm')">确认</el-button>
+					<div class="zh_tips"></div>
+				</el-form>
+
+				<el-dialog :title="$t('login.thirdparty')" :visible.sync="showDialog" append-to-body>
+					{{ $t('login.thirdpartyTips') }}
+				<social-sign />
+				</el-dialog>
+
+			</div>
+
+      <div class="zh_login_from" v-if="this.confirm != 1">
+        <div class="zh_login_h">登录远程诊断平台</div>
+        <el-form ref="loginForm" :model="loginForm" :rules="loginRules" auto-complete="on" label-position="left">
+          <el-form-item prop="username" class="zh_txt">
+            <el-input
+              v-model="loginForm.username"
+              :placeholder="$t('请输入用户名')"
+              name="username"
+              type="text"
+              auto-complete="on"
+            />
+          </el-form-item>
+          <div class="zh_tips"><span></span></div>
+          <el-form-item prop="password" class="zh_txt">
+            <el-input
+              :type="passwordType"
+              v-model="loginForm.password"
+              :placeholder="$t('请输入密码')"
+              name="password"
+              auto-complete="on"
+              @keyup.enter.native="handleLogin" />
+          </el-form-item>
+          <div class="zh_tips"><span></span></div>
+          <div class="zh_goPwd">忘记密码请联系管理员</div>
+
+          <el-button type="primary" class="zh_loginBtn" @click.native.prevent="handleLogin">登录</el-button>
+          <div class="zh_tips"></div>
+          <div class="zh_reg">随时随地远程诊断,<a href="####">申请试用</a></div>
+        </el-form>
+
+        <el-dialog :title="$t('login.thirdparty')" :visible.sync="showDialog" append-to-body>
+          {{ $t('login.thirdpartyTips') }}
+          <social-sign />
+        </el-dialog>
+
+      </div>
+		</div>
+	</div>
+	<div class="zh_login_footer">
+		<!-- <p>北京中世康恺科技有限公司</p> -->
+		<p>京ICP备 17059019号 &copy;2018-2019</p>
+	</div>
+</div>
+
+</template>
+
+<script>
+  import { isvalidUsername } from '@/utils/validate'
+  import { setMenuData } from '@/utils/index'
+  import LangSelect from '@/components/LangSelect'
+  import SocialSign from './socialsignin'
+  import Axios from 'axios'
+  import qs from 'qs'
+  import {loginRequest,checkCode,messageAgain} from '@/api/request'
+  export default {
+    components: { LangSelect, SocialSign, Axios, qs },
+    name: 'login',
+    data() {
+      // 设置默认显示中文
+      this.$store.dispatch('setLanguage', 'zh')
+      const validateUsername = (rule, value, callback) => {
+        // if (!isvalidUsername(value)) {
+        //   callback(new Error('请输入您的用户名'))
+        // } else {
+        //   callback()
+        // }
+        if (!isvalidUsername) {
+          callback(new Error('请输入用户名'))
+        } else {
+          callback()
+        }
+      }
+      const validatePassword = (rule, value, callback) => {
+        if (value.length < 6) {
+          callback(new Error('请输入您的密码'))
+        } else {
+          callback()
+        }
+      }
+      const validateiphoneNumberd = (rule, value, callback) => {
+        if (value.length < 6) {
+          callback(new Error('请输入您的手机号'))
+        } else {
+          callback()
+        }
+      }
+      const validateverificationCode = (rule, value, callback) => {
+        if (value.length < 3) {
+          callback(new Error('请输入您的验证码'))
+        } else {
+          callback()
+        }
+      }
+      return {
+        isShow: true,
+        confirm: 0,
+        innerText:'获取验证码',
+        loginForm: {
+          username: '',
+          password: '',
+          iphoneNumber:'',
+          verificationCode:''
+        },
+        loginRules: {
+          username: [{ required: true, trigger: 'blur', validator: validateUsername,type: 'string' }],
+          password: [{ required: true, trigger: 'blur', validator: validatePassword,type: 'string' }],
+          iphoneNumber: [{ required: true, trigger: 'blur', validator: validateiphoneNumberd,type: 'string' }],
+          verificationCode: [{ required: true, trigger: 'blur', validator: validateverificationCode,type: 'string' }],
+        },
+        passwordType: 'password',
+        loading: false,
+        showDialog: false,
+        rulse: {
+          username: [
+            { required: true, message: '请输入用户名', trigger: 'blur',type: 'string' }
+          ],
+          password: [
+            { required: true, message: '请输入密码', trigger: 'blur',type: 'string' }
+          ],
+          iphoneNumber:[
+            { required: true, message: '请输入手机号', trigger: 'blur',type: 'string' }
+          ],
+          verificationCode:[
+            { required: true, message: '请输入验证码', trigger: 'blur',type: 'string' }
+          ]
+        },
+        showLogin: false,
+        phone:'',
+        handleId:''
+      }
+    },
+    methods: {
+      showPwd() {
+        if (this.passwordType === 'password') {
+          this.passwordType = ''
+        } else {
+          this.passwordType = 'password'
+        }
+        var v = document.getElementById('ps')
+
+        if (this.isShow) {
+          v.type = 'text'
+          this.isShow = false
+        } else {
+          v.type = 'password'
+          this.isShow = true
+        }
+      },
+      //重新发送验证码
+      getMessageAgain(){
+        messageAgain({
+          handle_id: this.handleId
+        }).then(data => {
+          if (data.code == '0000'){
+            this.handleId = data.handle_id
+            let timer=null;
+            clearInterval(timer);//这句话至关重要
+            let time=60;
+            let that=this;//习惯
+            timer=setInterval(function(){
+              if(time<=0){
+                that.innerText="";
+                that.innerText="点击重新发送";
+                that.disabled=false;
+                clearInterval(timer)
+                console.log(timer)
+              }else {
+                that.disabled=true;
+                that.innerText="";
+                that.innerText="剩余时间"+(time)+"秒";
+                time--;
+              }
+            },1000);
+          }
+        }).catch(err =>{
+          this.$message.error(err.message);
+        })
+      },
+      _needChangePassword(data) {
+        if(data && data['pregPwd'] == 0) {
+          this.$message({
+            message: '密码复杂度过低,请修改密码!最低8位并且包含大小写字母、数字与特殊字符',
+            type: 'error'
+          })
+          this.$router.push({ path: '/my/setpassword' })
+          return true
+        }
+        return false
+      },
+      //验证码·
+      getCheckCode(){
+        var that = this
+        this.$refs.loginForm.validate(valid => {
+          var formObj = this
+          if (valid) {
+            console.log(this.handleId)
+            checkCode(
+              {
+                handle_id: this.handleId,
+              code: this.loginForm.verificationCode
+            }
+            ).then(data => {
+              if (data.code === '0000') {
+                var loginUser = data.info
+                  loginUser.avatar = ''
+                  loginUser.sessionid = data.sessionid
+                  loginUser.isAdmin = data.info.is_admin
+                  setMenuData('loginUser', JSON.stringify(loginUser))
+                  console.log(33333)
+                // 登录成功·
+                // 登录成功后,将远程、本地、患者菜单分开
+                var localSysPlatMenuArr = []
+                var remoteSysPlatMenuArr = []
+                var patientSysPlatMenuArr = []
+                if (loginUser.permission && loginUser.permission != null) {
+                  // 64022a6a4b32abae(本地)  814dc08e8183952d(远程)
+                  for (var i = 0; i < loginUser.permission.length; i++) {
+                    var upns = loginUser.permission[i]
+                    //本院报告
+                    if (upns.id === '80ddb7d09ebc44b4') {
+                      localSysPlatMenuArr.push(upns)
+                    }
+                    //远程诊断
+                    if (upns.id === '0aa9d7b2fdf7268e') {
+                      remoteSysPlatMenuArr.push(upns)
+                    }
+                    //患者登记
+                    if (upns.id === '0eac42ef01de23ff'){
+                      patientSysPlatMenuArr.push(upns)
+                    }
+                  }
+                }
+                // 将本地菜单或远程菜单或患者登记,放入缓存
+                setMenuData('localSysPlatMenuArr', JSON.stringify(localSysPlatMenuArr))
+                setMenuData('remoteSysPlatMenuArr', JSON.stringify(remoteSysPlatMenuArr))
+                setMenuData('patientSysPlatMenuArr', JSON.stringify(patientSysPlatMenuArr))
+                console.log('测试缓存',remoteSysPlatMenuArr)
+                // 默认显示本地系统
+                var locSign = null
+                if ((typeof locSign === 'undefined') || locSign == null) {
+                  if (localSysPlatMenuArr.length > 0) {
+                    setMenuData('sys_plat_sign', 'local')
+                    console.log('router local --> ' + localSysPlatMenuArr[0].url)
+                    if(!that._needChangePassword(data))
+                      that.$router.push({ path: localSysPlatMenuArr[0].url })
+                  } else if (remoteSysPlatMenuArr.length > 0) {
+                    setMenuData('sys_plat_sign', 'remote')
+                    console.log('router remote --> ' + remoteSysPlatMenuArr[0].url)
+                    if(!that._needChangePassword(data))
+                      that.$router.push({ path: remoteSysPlatMenuArr[0].url })
+                  } else if (patientSysPlatMenuArr.length > 0) {
+                    setMenuData('sys_plat_sign', 'patient')
+                    console.log('router patient --> ' + patientSysPlatMenuArr[0].url)
+                    if(!that._needChangePassword(data))
+                      that.$router.push({ path: patientSysPlatMenuArr[0].url })
+                  } else {
+                    // 无菜单权限
+                    that.$message.error('该用户暂无可用权限')
+                  }
+                }
+              } else {
+                // 登录失败
+                // alert("登录失败");
+                console.log('login fail!')
+                formObj.loading = false
+                formObj.$message({
+                  message: '验证码输入错误',
+                  type: 'error'
+                })
+              }
+              return true
+            }).catch(error => {
+              this.$message.error(error.message);
+            })
+          }else{
+            console.log('error submit!!')
+            return false
+          }
+        })
+      },
+      getTime(){
+
+      },
+      handleLogin() {
+        var that = this
+        this.$refs.loginForm.validate(valid => {
+          if (valid) {
+            var formObj = this
+            loginRequest(
+              {
+                userName: this.loginForm.username,
+                pwd: this.loginForm.password
+              }
+            ).then(data => {
+              if (data.code === '0000') {
+                var loginUser = data.info
+                if (data.phone !='') {
+                  this.confirm = 1
+                  this.loginForm.iphoneNumber = data.phone
+                  this.handleId = data.handle_id
+                  let timer=null;
+                  clearInterval(timer);//这句话至关重要
+                  let time=60;
+                  let that=this;//习惯
+                  timer=setInterval(function(){
+                    if(time<=0){
+                      that.innerText="";
+                      that.innerText="点击重新发送";
+                      that.disabled=false;
+                      clearInterval(timer)
+                      console.log(timer)
+                    }else {
+                      that.disabled=true;
+                      that.innerText="";
+                      that.innerText="剩余时间"+(time)+"秒";
+                      time--;
+                    }
+                  },1000);
+                  that.$message({
+                    message: '请输入用户登录验证码 ',
+                    type: 'warn'
+                  })
+                  return
+                }
+                if (data.sessionid) {
+                  loginUser.avatar = ''
+                  loginUser.sessionid = data.sessionid
+                  loginUser.isAdmin = data.info.is_admin
+                  setMenuData('loginUser', JSON.stringify(loginUser))
+                  console.log(33333)
+                }
+                // 登录成功
+                // 登录成功后,将远程、本地、患者菜单分开
+                var localSysPlatMenuArr = []
+                var remoteSysPlatMenuArr = []
+                var patientSysPlatMenuArr = []
+                if (loginUser.permission && loginUser.permission != null) {
+                  // 64022a6a4b32abae(本地)  814dc08e8183952d(远程)
+                  for (var i = 0; i < loginUser.permission.length; i++) {
+                    var upns = loginUser.permission[i]
+                    //本院报告
+                    if (upns.id === '80ddb7d09ebc44b4') {
+                      localSysPlatMenuArr.push(upns)
+                    }
+                    //远程诊断
+                    if (upns.id === '0aa9d7b2fdf7268e') {
+                      remoteSysPlatMenuArr.push(upns)
+                    }
+                    //患者登记
+                    if (upns.id === '0eac42ef01de23ff'){
+                      patientSysPlatMenuArr.push(upns)
+                    }
+                  }
+                }
+                // 将本地菜单或远程菜单或患者登记,放入缓存
+                setMenuData('localSysPlatMenuArr', JSON.stringify(localSysPlatMenuArr))
+                setMenuData('remoteSysPlatMenuArr', JSON.stringify(remoteSysPlatMenuArr))
+                setMenuData('patientSysPlatMenuArr', JSON.stringify(patientSysPlatMenuArr))
+                console.log('测试缓存',remoteSysPlatMenuArr)
+                // 默认显示本地系统
+                var locSign = null
+                if ((typeof locSign === 'undefined') || locSign == null) {
+                  if (localSysPlatMenuArr.length > 0) {
+                    setMenuData('sys_plat_sign', 'local')
+                    console.log('router local --> ' + localSysPlatMenuArr[0].url)
+                    if(!that._needChangePassword(data))
+                      that.$router.push({ path: localSysPlatMenuArr[0].url })
+                  } else if (remoteSysPlatMenuArr.length > 0) {
+                    setMenuData('sys_plat_sign', 'remote')
+                    console.log('router remote --> ' + remoteSysPlatMenuArr[0].url)
+                    if(!that._needChangePassword(data))
+                      that.$router.push({ path: remoteSysPlatMenuArr[0].url })
+                  } else if (patientSysPlatMenuArr.length > 0) {
+                    setMenuData('sys_plat_sign', 'patient')
+                    console.log('router patient --> ' + patientSysPlatMenuArr[0].url)
+                    if(!that._needChangePassword(data))
+                      that.$router.push({ path: patientSysPlatMenuArr[0].url })
+                  } else {
+                    // 无菜单权限
+                    that.$message.error('该用户暂无可用权限')
+                  }
+                }
+              } else {
+                // 登录失败
+                // alert("登录失败");
+                console.log('login fail!')
+                if (this.handleId != ''){
+                  formObj.loading = false
+                }else{
+                  formObj.loading = true
+                }
+                formObj.$message({
+                  message: '登录失败,用户名或密码不正确 ',
+                  type: 'error'
+                })
+              }
+              return true
+            })
+              .catch(function(error) {
+                that.$message.error(error.message);
+              })
+            if (this.handleId != ''){
+              this.loading = false
+              return false
+            }else{
+              this.loading = true
+              return true
+            }
+
+          } else {
+            console.log('error submit!!')
+            return false
+          }
+        })
+      },
+      afterQRScan() {
+        // const hash = window.location.hash.slice(1)
+        // const hashObj = getQueryObject(hash)
+        // const originUrl = window.location.origin
+        // history.replaceState({}, '', originUrl)
+        // const codeMap = {
+        //   wechat: 'code',
+        //   tencent: 'code'
+        // }
+        // const codeName = hashObj[codeMap[this.auth_type]]
+        // if (!codeName) {
+        //   alert('第三方登录失败')
+        // } else {
+        //   this.$store.dispatch('LoginByThirdparty', codeName).then(() => {
+        //     this.$router.push({ path: '/' })
+        //   })
+        // }
+      }
+    },
+  }
+</script>
+
+<style rel="stylesheet/scss" lang="scss">
+  /* 修复input 背景不协调 和光标变色 */
+  /* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */
+
+  $bg:#283443;
+  $light_gray:#eee;
+  $cursor: #fff;
+
+  @supports (-webkit-mask: none) and (not (cater-color: $cursor)) {
+    .login-container .el-input input{
+      color: $cursor;
+      &::first-line {
+        color: $light_gray;
+      }
+    }
+  }
+
+  /* reset element-ui css */
+  .login-container {
+    .el-input {
+      display: inline-block;
+      height: 47px;
+      width: 85%;
+      input {
+        background: transparent;
+        border: 0px;
+        -webkit-appearance: none;
+        border-radius: 0px;
+        padding: 12px 5px 12px 15px;
+        color: $light_gray;
+        height: 47px;
+        caret-color: $cursor;
+        &:-webkit-autofill {
+          -webkit-box-shadow: 0 0 0px 1000px $bg inset !important;
+          -webkit-text-fill-color: $cursor !important;
+        }
+      }
+    }
+    .el-form-item {
+      border: 1px solid rgba(255, 255, 255, 0.1);
+      background: rgba(0, 0, 0, 0.1);
+      border-radius: 5px;
+      color: #454545;
+    }
+  }
+</style>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+$bg:#2d3a4b;
+$dark_gray:#889aa4;
+$light_gray:#eee;
+
+.login-container {
+  position: fixed;
+  height: 100%;
+  width: 100%;
+  background-color: $bg;
+  .login-form {
+    position: absolute;
+    left: 0;
+    right: 0;
+    width: 520px;
+    max-width: 100%;
+    padding: 35px 35px 15px 35px;
+    margin: 120px auto;
+  }
+  .tips {
+    font-size: 14px;
+    color: #fff;
+    margin-bottom: 10px;
+    span {
+      &:first-of-type {
+        margin-right: 16px;
+      }
+    }
+  }
+  .svg-container {
+    padding: 6px 5px 6px 15px;
+    color: $dark_gray;
+    vertical-align: middle;
+    width: 30px;
+    display: inline-block;
+  }
+  .title-container {
+    position: relative;
+    .title {
+      font-size: 26px;
+      color: $light_gray;
+      margin: 0px auto 40px auto;
+      text-align: center;
+      font-weight: bold;
+    }
+    .set-language {
+      color: #fff;
+      position: absolute;
+      top: 5px;
+      right: 0px;
+    }
+  }
+  .show-pwd {
+    position: absolute;
+    right: 10px;
+    top: 7px;
+    font-size: 16px;
+    color: $dark_gray;
+    cursor: pointer;
+    user-select: none;
+  }
+  .thirdparty-button {
+    position: absolute;
+    right: 35px;
+    bottom: 28px;
+  }
+}
+
+.zh_login{ width:100%; height:710px; position:fixed; left:0; top:50%; margin-top:-365px; }
+.zh_login_logo{ max-width:960px; height:36px; padding:18px 20px 16px; margin:auto; }
+.zh_login_logo img{ height:36px; float:left; }
+.zh_login_logo div{ float:right; line-height:36px; font-size:1rem; color:#999; }
+.zh_login_box{ width:100%; height:370px; padding:100px 0; background:url(../../../static/img/banner.png) no-repeat center #D6E3E9; }
+.zh_login_in{ max-width:960px; padding:0 20px; margin:auto; }
+.zh_login_in .zh_login_from{ width:280px; float:right; padding:30px; background-color:#FFF; box-shadow:0 0 4px #BBB; border-radius:3px; }
+.zh_login_in .zh_login_from .zh_login_h{ margin-bottom:25px; font-size:1.2rem; color:#666; }
+.zh_login_in .zh_login_from .zh_txt{ height:36px; font-size:1rem; box-shadow:0 0 3px #EEE; border-radius:0px; margin-bottom:0; margin-top:5px; }
+.zh_login_in .zh_login_from .zh_txt input{ width:90%; height:34px; margin-top:1px; line-height:36px; padding:0 5%; box-shadow: none; border:none; font-size:1rem; -webkit-appearance:none; outline:none; }
+.zh_login_in .zh_login_from .zh_txt input::placeholder{ color:#BBB; }
+.zh_login_in .zh_login_from .zh_tips{ height:15px; line-height:20px; }
+.zh_login_in .zh_login_from .zh_tips span{ font-size:.8rem; color:#F00; }
+.zh_login_in .zh_login_from .zh_goPwd{ text-align:right; height:30px; text-align:right; font-size:.8rem; color:#AAA; }
+.zh_login_in .zh_login_from .zh_loginBtn{ width:100%; height:40px; background-color:#334154; border:none; color:#FFF; font-size:1rem; box-shadow:0 0 4px #334154; border-radius:3px; cursor:pointer; }
+.zh_login_in .zh_login_from .zh_reg{ height:40px; line-height:40px; text-align:center; font-size:.9rem; color:#999; background:linear-gradient(#FDFDFD, #F0F0F0) #CCC; border:1px solid #DDD; box-shadow:0 0 3px #EEE; border-radius:3px; }
+.zh_login_in .zh_login_from .zh_reg a{ color:#0BD0D8; text-decoration:none; }
+.zh_login_in .zh_login_from .zh_reg a:hover{ text-decoration:underline; }
+.zh_login_footer{ max-width:960px; margin:15px auto; }
+.zh_login_footer p{ font-size:.8rem; color:#999; text-align:center; line-height:180%; }
+
+</style>

+ 19 - 0
tls.crt

@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDFTCCAf2gAwIBAgIJAKih/oVKuIqPMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
+BAMMEGNhLXBhY3NvbmxpbmUuY24wHhcNMjEwMTE0MDgwNDI1WhcNMzEwMTEyMDgw
+NDI1WjAYMRYwFAYDVQQDDA1wYWNzb25saW5lLmNuMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAxGzcMH1lmNwJSSzg4i7tWTYQcyg2GaZW5TVuBU/ubY8/
+GWR3B5F3ykptazr5MrRoDQlwzn4T7gqNP7qGxb1e3clGdAYpSXzbkVZzlIeXmVoC
+ypfUxQ+VJs0x1RYlQYxarl2h5axOGFYKsdK3fjx/tpGe7LbbHtKaTlZ0LCuxnteh
+1uNvL++WnZnCQHDxosfZFDGNZO1Dg7KEXEFUQ7xXnPJVeY2F3Hi2JyiqPBXgPB1K
+x7MErpwC7wMMXV0Mf0B+4+ZGL1mTzES7JnBdrPHGMmdyLyIedlHoFSNseiWL6zaa
+39ych7bDosGVljk8bJLcZ8KGdtNpl19LLsavip65RQIDAQABo18wXTAJBgNVHRME
+AjAAMAsGA1UdDwQEAwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw
+JAYDVR0RBB0wG4INcGFjc29ubGluZS5jbocEdZxDPYcECgocGDANBgkqhkiG9w0B
+AQsFAAOCAQEACSh0sqsDsLITb9XHSHpvvxwnVV9L0Mo+cJ3T8FWTwH4jCEC+atES
+GQVrREd5QeidzrQ9iWUExCoOyWeXkIXQ5+wxW4ktL9/ZrjCdpNzGBca69kvSEDjk
+EDQfP5ad8uV1qQGkb1twN7IGx/n+aermV5QFUA75eb5RGizBBVAaMsh3aeBk1oZQ
+XDflVE4P5jd9tqiJr0GDWIWGgzJjL/gDioHBVwOazp10zCT5tXljm+kBaKFhLn2q
+nuAZ4rH3ZrJJW/TU1dOsJW6SVOlQ9/QoTqQuLF86i6RLcqp3BrBxv+VzIuGhk/+f
+bPqmqJP7qUwDgsULf8NV13YlGrVBgEqhYQ==
+-----END CERTIFICATE-----

+ 27 - 0
tls.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAxGzcMH1lmNwJSSzg4i7tWTYQcyg2GaZW5TVuBU/ubY8/GWR3
+B5F3ykptazr5MrRoDQlwzn4T7gqNP7qGxb1e3clGdAYpSXzbkVZzlIeXmVoCypfU
+xQ+VJs0x1RYlQYxarl2h5axOGFYKsdK3fjx/tpGe7LbbHtKaTlZ0LCuxnteh1uNv
+L++WnZnCQHDxosfZFDGNZO1Dg7KEXEFUQ7xXnPJVeY2F3Hi2JyiqPBXgPB1Kx7ME
+rpwC7wMMXV0Mf0B+4+ZGL1mTzES7JnBdrPHGMmdyLyIedlHoFSNseiWL6zaa39yc
+h7bDosGVljk8bJLcZ8KGdtNpl19LLsavip65RQIDAQABAoIBAHaEVIsxbjbANR4g
+5QO0WuOkGmLRVWs+kVm1VlAAPZV/hAwXMTawz/2P0NuNdsTgU5PiKV1+dxn+5eEY
+866mJ3JcupTRDuJXYsgbyJtLAO63f82rtOa+EzmZP8MZnJsjS6e/uSqyP2Cxsbw/
+rxWM/WY0ERc08Zt0aURxJ6FrL73twPqCCP9ZLGN/AJM/pJy+Y5x1KbW6F7fUtsTG
++U6NwZHDboTwX/qovH3uFhhPOOWeSoogomZlG4kH3SH50HOc5ST7ptOFaH7TCnEl
+g4LXw5tsjrZZPVgb4/AUxgYHIDmYAvEPU/3Wuac9OcXXWP75OhZrgW8eXTtfnHDT
+1VXtrNUCgYEA5bDhABLLC1U/erqulcY+rMv3EjLkXZOdk66k7oBeZe6uTUrbH0us
+4lp7Ci+cCGF7vm75q9AtRXXdxJdc4XamhsC2WPlXuyvWrAI2DsKywrJyP3Lh+arw
+uO7Jxap5PCeitLsjrfi0WUjyjl/2DgHaPkau86RIM+dQt2WhDproic8CgYEA2uyL
+58k7ipKX8y2VGAFdv/KjOplUAZoATBmut+HJqDeftTxOS1RUyiEsNDjnm6C1D0ry
+P/hF+wHi2ZZsgCuBvsq3H6es8k6xUMECEI40OaJIHagfkZf5jhwwHS0PHz/5Mzwm
+YWE6Nhssgxw61mG/LpDOiT5Pixte0sL5u+8xlKsCgYBctSvbr7osdNgOXVMiOMYL
+ULgErG3oJzCu7wq7CS0Qz2mi4NfYpd697e9DiTvdVhtwHbLAWmIrawt70ew3RICq
+WxY+i0WR0nvvKWVQR92HICdk3KXA8/H9csQV+Fy+nvDZKb+Y9I02jG76cFkMBktk
+X3s189UAvhiiLW74SiYZmQKBgFH0d7N/u9B2bHfWupfP+x6eYMjRGYe39SCIBMZF
+uk5E9H7OYqkEmvFIVdn+64VxNhbRgbq84MXEwP2fuGKK5vlbvg4VoULcfriyaGl2
+MsrYm5Kum5LPh9bRapmhgqW6Nzoc7GlMEpSqu5Ehgk07LmzqPMdYEkMLLgZMg1z9
+gFwdAoGBAIZJ9dlQ0hlBE4quJpWDesgLGkzNcic7C9yItvD2dHSc94XhlvQyeVtR
+FwGLpYKd+MX8gpu4/q+R5YcugQofrHNGoQa3TPL72NOJM+G9bTkmMkoaE4SS9vMd
+piX0lKRm1fwULejVvwz8n36BUCYPSaZhfr2um2NnX9syILVip74O
+-----END RSA PRIVATE KEY-----