HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/no-port-config.js
import{e as T,_ as A,w as B,k as N,M as m,cO as M,c7 as F}from"./utils-lib.js?v=1777008528";import{c as G,r as E,o as z,j as c,k as f,q as t,e as u,p as l,v as p,F as S,B as U,s as K,Q as Y,y as $,x as d,ak as L,aj as O,z as j}from"./base-lib.js?v=1777008528";import{u as q}from"./config.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";const Q={class:"p-24px"},Z={class:"flex items-center"},H={class:"w-[20rem] flex ml-[1rem]"},J={class:"my-6 flex items-center leading-[3rem]"},W={class:"flex ml-[1rem]"},X={key:0,class:"flex mt-12px"},h={class:"flex-1 mr-20px"},ee={class:"flex-1"},te={class:"list-disc text-secondary px-20px pt-12px"},se={class:"flex items-center"},re=G({__name:"no-port-config",props:{compData:{}},emits:["close"],setup(V,{emit:g}){const a=V,b=g,n=E("auto"),C=[{title:"自定义证书",value:"auto"},{title:"不部署证书",value:"no"},{title:"选择已有证书",value:"select"}],s=E(a.compData),D=r=>{n.value=r,r==="select"&&T({title:"选择已有证书",component:()=>A(()=>import("./cert-list-dialog.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),area:70,compData:{refreshData:e=>{s.value.domain=(e==null?void 0:e.dns[0].replace(/^\*\./,"panel."))||"",s.value.cert=(e==null?void 0:e.fullchain)||"",s.value.key=(e==null?void 0:e.privkey)||"",s.value.certInfo=e.info||{}}}})},P=()=>a.compData.domain?/^(?!:\/\/)([a-zA-Z0-9-_]{1,63}\.)+[a-zA-Z]{2,6}$/.test(a.compData.domain)?n.value!=="no"&&(!a.compData.key||!a.compData.cert)?(m.error("请填写证书内容"),!1):!0:(m.error("域名格式不正确"),!1):(m.error("域名不能为空"),!1),w=async()=>{P()&&(await B({title:"提示",icon:"warning-filled",content:"基于Nginx/Apache,如果环境运行异常会导致无法访问,是否继续操作?"}),await N({loading:"正在设置免端口访问配置,请稍候...",request:q({domain:a.compData.domain,key:n.value==="no"?"":s.value.key,cert:n.value==="no"?"":s.value.cert}),message:!0}),a.compData.refresh(),b("close"))},v=async(r,e)=>{if(!e)try{const i=await navigator.clipboard.readText();if((r==="key"?[/^\s*-----BEGIN PRIVATE KEY-----/,/^\s*-----BEGIN RSA PRIVATE KEY-----/,/^\s*-----BEGIN EC PRIVATE KEY-----/]:[/^\s*-----BEGIN CERTIFICATE-----/,/^\s*-----BEGIN CERTIFICATE REQUEST-----/]).some(o=>o.test(i)))switch(m.success("已从粘贴板检测到".concat(r==="key"?"密钥":"证书")),r){case"key":s.value.key=i;break;case"cert":s.value.cert=i;break}}catch(i){}},I=()=>{window.location.href="/site/nginx"};return z(()=>{n.value=a.compData.use_ssl?"auto":"no"}),(r,e)=>{const i=M,x=L,_=O,k=j,y=F;return c(),f("div",Q,[t("div",Z,[e[6]||(e[6]=t("span",null,"绑定域名:",-1)),t("div",H,[u(i,{modelValue:l(s).domain,"onUpdate:modelValue":e[0]||(e[0]=o=>l(s).domain=o),placeholder:"请输入绑定域名"},null,8,["modelValue"])])]),t("div",J,[e[7]||(e[7]=t("span",null,"SSL证书:",-1)),t("div",W,[u(_,{modelValue:l(n),"onUpdate:modelValue":e[1]||(e[1]=o=>Y(n)?n.value=o:null),size:"small",onChange:D},{default:p(()=>[(c(),f(S,null,U(C,(o,R)=>u(x,{key:R,label:o.value},{default:p(()=>[t("span",null,K(o.title),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])])]),l(n)!=="no"?(c(),f("div",X,[t("div",h,[e[8]||(e[8]=t("div",{class:"text-small mb-[.8rem]"},"密钥(KEY)",-1)),u(i,{class:"text-small",type:"textarea",modelValue:l(s).key,"onUpdate:modelValue":e[2]||(e[2]=o=>l(s).key=o),rows:13,size:"small",onFocus:e[3]||(e[3]=o=>v("key",l(s).key))},null,8,["modelValue"])]),t("div",ee,[e[9]||(e[9]=t("div",{class:"text-small mb-[.8rem]"},"证书(PEM格式)",-1)),u(i,{type:"textarea",modelValue:l(s).cert,"onUpdate:modelValue":e[4]||(e[4]=o=>l(s).cert=o),rows:13,size:"small",onFocus:e[5]||(e[5]=o=>v("cert",l(s).cert))},null,8,["modelValue"])])])):$("",!0),u(k,{onClick:w,type:"primary",class:"mt-4"},{default:p(()=>[...e[10]||(e[10]=[d("保存",-1)])]),_:1}),t("ul",te,[t("li",null,[e[11]||(e[11]=d("配置后可在网站--反向代理项目中管理,",-1)),t("span",{class:"text-primary cursor-pointer",onClick:I},"点击前往")]),e[14]||(e[14]=t("li",null,"配置此域名的证书到面板,浏览器即可信任访问",-1)),t("li",null,[t("div",se,[e[13]||(e[13]=d(" 粘贴您的*.key以及*.pem内容,然后保存即可 ",-1)),u(y,{href:"https://www.bt.cn/bbs/thread-105443-1-1.html"},{default:p(()=>[...e[12]||(e[12]=[d("帮助",-1)])]),_:1})])]),e[15]||(e[15]=t("li",null,"如果浏览器提示证书链不完整,请检查是否正确拼接PEM证书",-1)),e[16]||(e[16]=t("li",null,"PEM格式证书 = 域名证书.crt + 根证书(root_bundle).crt",-1))])])}}});export{re as default};
function __vite__mapDeps(indexes) {
  if (!__vite__mapDeps.viteFileDeps) {
    __vite__mapDeps.viteFileDeps = []
  }
  return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}