使用go语言颁发CA证书

本篇文章中,将描述如何使用go创建CA,并使用CA签署证书。在使用openssl创建证书时,遵循的步骤是 创建秘钥 > 创建CA > 生成要颁发证书的秘钥 > 使用CA签发证书。这种步骤,那么我们现在就来尝试下。 创建证书的颁发机构 首先,会从将从创建 CA 开始。CA 会被用来签署其他证书 go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // 对证书进行签名 ca := &x509.Certificate{ SerialNumber: big.NewInt(2019), Subject: pkix.Name{ CommonName: "domain name", Organization: []string{"Company, INC."}, Country: []string{"US"}, Province: []string{""}, Locality: []string{"San Francisco"}, StreetAddress: []string{"Golden Gate Bridge"}, PostalCode: []string{"94016"}, }, NotBefore: time.Now(), // 生效时间 NotAfter: time.Now().AddDate(10, 0, 0), // 过期时间 年月日 IsCA: true, // 表示用于CA // openssl 中的 extendedKeyUsage = clientAuth, serverAuth 字段 ExtKeyUsage: []x509....

 ·  · 

如何使用golang通过进程ID找到进程名称

一个很好的问题:How golang to get process name by process id (pid)? 目前看来go api并没有提供通过pid获取进程名称的方法,可以通过 /proc/<pid>/cmdline来获取对应的进程名称,也可以通过 readlink /proc/6530/exe 来获取 /proc/<pid>/cmdline 获取的为运行进程的名称,通常包含一些特殊字符。例如 "-bash\x00",sshd: root@pts/0 readlink /proc/6530/exe 获取的为对应进程运行的程序的路径 go 1 2 pid := os.Getppid() contents, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cmdline",pid)) go 1 2 pid := os.Getppid() contents, err := os.Readlink(fmt.Sprintf("/proc/%d/cmdline",pid)) Reference process name from pid

 ·  · 

zimbra用户管理员脚本

sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/bin/bash # $1 domain # $2 email zmprov ma $2 zimbraIsDelegatedAdminAccount TRUE zmprov ma $2 zimbraAdminConsoleUIComponents cartBlancheUI zimbraAdminConsoleUIComponents domainListView zimbraAdminConsoleUIComponents accountListView zimbraAdminConsoleUIComponents DLListView zmprov ma $2 zimbraDomainAdminMaxMailQuota 0 zmprov grantRight domain $1 usr $2 +createAccount zmprov grantRight domain $1 usr $2 +createAlias zmprov grantRight domain $1 usr $2 +createCalendarResource zmprov grantRight domain $1 usr $2 +createDistributionList zmprov grantRight domain $1 usr $2 +deleteAlias zmprov grantRight domain $1 usr $2 +listDomain zmprov grantRight domain $1 usr $2 +domainAdminRights zmprov grantRight domain $1 usr $2 set....

 ·  · 

zimbra修改ServerName

文章概述了如何使用 zmsetservername 更改 Zimbra 服务器的主机名。请注意,此 CLI 命令的用法因您运行的 ZCS 版本而异。 语法: bash 1 ./zmsetservername [-h] [-d] [-f] [-s] [-o <上一个服务器名称>] [-v+] -n <服务器名称> 参数说明 Name Description –help 显示 zmsetservername 的使用选项。 –force 强制重命名,绕过安全检查。 –oldServerName 服务器以前的名称。默认为 LC zimbra_server_hostname。 –newServerName 服务器的新名称。 –deletelogger 删除旧服务器的记录器数据库。默认是将其数据重新映射到新主机名。 –skipusers 跳过使用新服务器修改用户数据库。 –usersonly 仅更新用户数据库。这样,您可以运行一次来完成所有服务器更新,然后运行第二次来更新帐户。可能需要 --force。 –verbose 设置详细级别。可以多次指定以提高级别。 Reference zm设置服务器名称

 ·  · 

zimbra安装ssl证书

zimbra在后台安装证书签发机构签发证书出现时候出现错误:{RemoteManager: mail.domain.com->zimbra@mail.domain.com:22} text 1 2 3 com.zimbra.common.service.ServiceException: system failure: exception during auth {RemoteManager: mail.domain.com->zimbra@mail.domain.com:22} ExceptionId:qtp1068934215-357:https:https ://mail.domain.com:7071/service/admin/soap/GetMailQueueRequest: Code:service.FAILURE text 1 2 3 4 5 6 7 8 9 10 11 12 13 14 com.zimbra.common.service.ServiceException: system failure: exception during auth {RemoteManager: mail.domain.com->zimbra@mail.domain.com:22} ExceptionId:qtp1068934215-357:https:https ://mail.domain.com:7071/service/admin/soap/GetMailQueueRequest: Code:service.FAILURE at com.zimbra.common.service.ServiceException.FAILURE(ServiceException.java:286) at com.zimbra.cs.rmgmt.RemoteManager.getSession(RemoteManager.java:209) at com.zimbra.cs.rmgmt.RemoteManager.execute(RemoteManager.java:139) at com.zimbra.cert.GetCert.addCertsOnServer(GetCert.java:112) at com.zimbra.cert.GetCert.handle(GetCert.java:75) Caused by: java.io.IOException: There was a problem while connecting to mail.domain.com:22 at ch.ethz.ssh2.Connection.connect(Connection.java:699) at ch.ethz.ssh2.Connection.connect(Connection.java:490) at com.zimbra.cs.rmgmt.RemoteManager.getSession(RemoteManager.java:200) ....

 ·  ·