TS问题,高手进!!

TS问题,高手进!!,第1张

运行TS(客户端),点“连接(Connection)”进行连接 *** 作
连接方式有两种:“连接(Connect)”和“快速连接(Quick Connect)”
1、连接: “连接(Connection)”菜单——>“连接(Connect)”,出现如下界面
这个界面有两个标签,默认进入“本地服务器列表(Local Addressbook)”
现在地址簿是空的,右键单击左侧的空白处,在d出的菜单里点“增加服务器(Add Server)”添加一个TS服务器地址,这时在左侧“Servers”下面增加了一个“New Server”。现在开始设置这个新服务器。以我们目前试用的TS服务器为例:
右侧第一行:“标签(Label)”,此处给这个服务器自定义一个名称,如“CsGo TS”
右侧第二行:“服务器地址(Server Address)”,此处填写服务器IP地址,如“tscsgocn:8888”。当同一主机运行多个TS服务器时,可在IP地址后加入端口号以区分。
右侧第三行:“昵称(Nickname)”填写你的昵称,如“寒冰”,此项必须填写,除非选择了“允许服务器分配昵称(Allow server to assign a nickname)”这个选项,由服务器分配给你一个类似“GUEST1”这样的昵称。
·“匿名(Anonymous)”选项:如果没有注册名和密码,选此项匿名进入服务器,你的昵称后面会跟着“U”的标记,表示你是非注册用户,当然服务器必须允许匿名访问,或者你有服务器的密码。你会看到当选择了此项后,下面会出现一个“服务器密码(Server Password)”的空白框,如果服务器需要密码,应在此处填写。
·“已注册选项(Registered)”:如果有用户名和密码,选此项,并以注册用户身份连接到服务器,连接后你的昵称后面会跟着“R”的标记,表示你是注册用户。此时在下面会出现两行空白框(替代了“服务器密码”),它们是:
·“登录名(Login Name)”: 填写你的登录名;
·“密码(User Password)”: 填写你的登录密码;
如果没有登录名和密码,此处务必不要填写任何内容,否则无法连接到服务器。如果不填,并且服务器没有限制的话,即使你选则了“Registered”,连接到服务器后,你的后面昵称后面的标记仍然是“U”,即未注册用户。
如果担心自己的连接会断掉,可将“自动连接(Auto-Reconnect)”勾上,自动重新连接。
以下为可选项:
·“默认频道(Default Channel)”:输入频道名可直接进入你要访问的频道;
·“默认子频道(Default Subchannel)”:输入子频道名可直接进入你要访问的子频道;
·“频道密码(Channel Password)”:如果是加密频道在这输入密码可直接进入频道;
现在点击“连接(Connect)”连接到服务器。如果一切正常,你就进入了TS服务器了。
可以向本地地址簿内填加任意多的地址,TS自动保存这些地址。
此外,连接界面还有一个标签“互联网服务器列表(Web Server List)”,在此表单中所有标记为公共服务器的地址都会列出来。如果想加入某个服务器,只要选中它,然后点表单下方的“连接(Connect)”即可。如果要将该服务器的地址填加到本地地址簿,点“复制到本机列表(Copy to local Addressbook)”;点“更新列表(Update List)”可更新服务器列表。
2、快速连接: “连接(Connection)”菜单——>“快速连接(Quick Connect)”, 出现如下界面:
此方法可以快速连接到一个服务器,只需填写关键信息(所有信息都不会保存)。
·第一栏:服务器地址(Server address);
·第二栏:昵称(Nickname);
如果是注册用户
·第三栏:登录名(Login Name(optional));
·第四栏:登录密码(Password);
然后点“连接(Connect)”进行连接。

一、创建linux维护用户

登录root用户

创建新用户

useradd 新用户名

设置用户密码

passwd 新用户密码
二、安装jdk和配置环境变量

建议在root用户下直接安装jdk,并直接配置环境变量,同时给非root用户设置读和执行权限

解压包

tar xvf jdk包名tar

配置全局变量

编辑/etc/profile文件

vi /etc/profile

按I键,切换成编辑模式。

在文件未加入一下配置

export JAVA_HOME=jdk的解压文件目录

export JRE_HOME=jdk的解压文件目录/jre

export CLASSPATH=:${JAVA_HOME}/lib:${ JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${ JRE_HOME}/bin

export PATH=$PATH:${JAVA_PATH}

保存并退出

Esc   

:wq

重载配置文件使其生效

source /etc/profile

检查是否安装成功

Javac

Java version

 

权限修改

读4写2执行1,顺序所有者、组成员、其他用户

Chomd  755  jdk的解压文件目录
三、安装tomcat

安装tomcat和放入war包使用非root的维护用户

如果使用root安装的话记得设置权限。( chomd -r 外层文件目录 )

su - 用户名

1、解压包

tar  xvf  tomcat包名tar

2、将war包放入tomcat/webapps目录下
3、Tomcat启动服务和停止服务

查看进程

ps -ef | grep java

启动应用

Tomcat bin目录下startupsh

停止应用

建议使用

Kill -9 进程号
注:解压出应用文件后,注意配置信息的修改
四、IBM MQ部署 (75之后的版本)

(以下是使用90版本的正确部署命令)

一、 卸载旧版本IBM MQ (可选)

<因为部署环境没有安装过mq,卸载这部分命令我没有亲自测试过>

设置环境

以用户身份登录到组mqm,找到mq的安装位置 /opt/mqm

source /setmqenv -s

 

查看队列管理器的状态

dspmq -o installation
停止与要卸载的安装关联的所有正在运行的队列管理器

endmqm SXRECV

 

停止与队列管理器关联的所有侦听器。

endmqlsr -m SXRECV

 

查看系统上当前安装的软件包(组件)

sudo rpm -qa | grep MQSeries

 

 

列出软件包并一次性卸载

 sudo rpm -qa | grep MQSeries | xargs rpm -ev

 

再将对应的用户及安装目录给删除

rm -rf /opt/mqm

userdel -r mqm

 

 

检查MQ license

license文件在安装目录中 /opt/mqm/lib 可以找到

 

amqtcertlic - is a trial license

amqbcertlic - is a beta license

amqpcertlic - is the production license
——————————————————————————————————————
二、安装新版本ibm mq

解压,解压文件都在MQServer中

tar –xzvf IBM_MQ_915_LINUX_X86-64targz

 

进入MQServer文件夹中:

cd MQServer/

 

运行MQ许可证程序

/mqlicensesh

 

安装WebSphere MQ for Linux服务器(Runtime、SDK 和 Server 软件包):

 rpm -U MQSeriesRuntime-915-0x86_64rpm

 rpm -U MQSeriesSDK-915-0x86_64rpm

 rpm -U MQSeriesServer-915-0x86_64rpm

 

 

安装WebSphere MQ for Linux客户机:

rpm -U MQSeriesClient-900-0x86_64rpm

 

安装WebSphere MQ样本程序:

rpm -U MQSeriesSamples-900-0x86_64rpm

 

创建组和用户

安装过程创建了一个名为mqm的用户和一个同样名为 mqm 的组。设置一个密码来解锁。

passwd mqm

 

——————————————————————————————————————

三、 配置

(这部分队列管理器、通道、队列等根据实际情况自行配置)

切换用户:

su mqm

 

创建队列管理器

使用crtmqm命令来创建一个名为 SXRECV

的队列管理器。我们把它作为缺省队列,并且将不在创建时指定死信队列。然后使用strmqm命令启动队列管理器。

crtmqm -q  SXRECV

strmqm  SXRECV

 

——————

如果执行crtmqm命令时提示

-bash-32$ crtmqm

-bash: crtmqm: command not found
find / -name crtmqm

则需要配置mqm用户的环境变量,编辑如下文件,并添加下面的内容,如下:

第一种方法:相对第二种较安全仅对mqm用户有效

 

方法一:

(1) -bash-32$ vi /var/mqm/bash_profile --有可能会在文件夹下看不到这个文件,通过编辑即可看到

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin

(2)执行“”命令,使这个文件生效

-bash-32$ source  bash_profile

(3)再次尝试实行crtmqm或是dspmqm命令,即可发现已经生效。

 

方法二:

( 1)

su  root

[if !supportLists](2)[endif]

vim /etc/profile

[if !supportLists](3)[endif] 在最后面加上:

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/bin

( 4)关闭远程终端重新打开,无需重启服务器

——————

 

运行队列管理器

runmqsc SXRECV

 

创建通道和队列

DEFINE QLOCAL (XYDATA) REPLACE USAGE (NORMAL) DEFPSIST (YES) MAXDEPTH (300000) DESCR('兴业银行')
DEFINE QLOCAL (XYTRANS) REPLACE USAGE (XMITQ) DEFPSIST (YES) MAXDEPTH (300000) DESCR('兴业银行')
DEFINE QREMOTE (XYACK) REPLACE DEFPSIST (YES) RQMNAME (SXSEND)  RNAME (XYACK) XMITQ (XYTRANS) DESCR('XXXX')
DEFINE CHANNEL (XYDATA) CHLTYPE (RCVR) TRPTYPE (TCP) REPLACE DESCR('XXXX')
DEFINE CHANNEL (XYACK) CHLTYPE (SDR) CONNAME ('166118(2214)') XMITQ (XYTRANS) TRPTYPE (TCP) DISCINT (0) CONVERT (NO) SHORTRTY (30) SHORTTMR (10) LONGRTY (999999999) LONGTMR (20) REPLACE DESCR('XXXX')
DEFINE CHANNEL (SVRCONN) CHLTYPE (SVRCONN) MCAUSER('mqm')

 

创建监听

DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)

启动监听

start LISTENER(RECLISTENER)

 

启动通道

start channel(SVRCONN)

start channel(XYDATA)

start channel(XYACK)

 

———————————————————————————————————————————————————

 

四、2035错误码 说明

如果程序连接mq报错2035,则需要对权限认证做设置,则进行以此 *** 作

1、

ALTER QMGR CHLAUTH(DISABLED)

2、

ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('mqm')

3、

ALTER AUTHINFO(SYSTEMDEFAULTAUTHINFOIDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)

或者直接将连接认证选项置为空,将其完全关闭,指令如下:

ALTER QMGR CONNAUTH('')

 

在执行完上述两条命令中的任一条后,都需要刷新连接认证的缓存,指令如下:

REFRESH SECURITY TYPE(CONNAUTH)
五、mq *** 作命令

一、MQ的启动与停止
1、MQ的启动

strmqm QMgrName

如果启动默认队列管理器,strmqm后可以忽略队列管理器名称。
2、MQ的关闭

endmqm -i QMgrName

停止mq
二、MQ运行状态查看与常用 *** 作
1、 查看队列管理器运行状态

su mqm

执行如下命令检查队列管理器运行状态:dspmq显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。运行状态有如下几种:Starting正在启动Running正在运行Ending正在停止Ended normally已经正常终止Ended immediately已经立即终止Ended preemtively已经强制终止Ended unexpectively异常终止

注意:停止MQ后必须使用dspmq命令进行状态检查
2、查看通道运行状态与启停通道

runmqsc

dis chl();查看所有通道定义

dis chs();查看所有通道状态,如果没有查询到通道状态,或报错AMQ8420: Channel Status not found,请启动通道

dis chs(ChannelName); 查看通道ChannelName的状态

通道状态有如下几种:

STARTING正在启动BINDING正在绑定INITIALIZING正在初始化RUNNING正常STOPPING 正在停止RETRYING重试PAUSED等待STOPPED已停止REQUESTING请求

start chl(ChannelName);启动通道

stop chl(ChannelName);停止通道

重置通道

reset channel(ChannelName); 重置通道序号。当本地与其他MQ队列管理器的通道无法正常启动的情况,检查日志发现是通道序号不一致,此时就需要先停止发送方通道,清空队列深度并在发送方和接收方进行通道计数的重置,重置后启动通道即可恢复通讯。

注意:重置成功mq序列号一般相同或相差1
3、查看通道监听状态与启停监听

runmqsc

dis listner();查看通道监听定义

dis lsstatu(listnerName);查看监听状态

start lstr(listnerName); 启动监听

stop lstr(listnerName); 停止监听 
4、查看队列深度

runmqsc

dis q();查看所有各类队列的属性

dis qlocal(QName);查看所有本地队列的属性

队列深度属性为:CURDEPTH

查看队列深度display ql('队列名')  curdepth

清空队列深度

清空队列深度

clear ql(‘队列名’)
三、MQ发送和接收消息

su mqm

发送消息

amqsput  队列名  队列管理器

获取消息

amqsget  队列名  队列管理器
可通过配合查看队列深度命令,完成mq的联调
六、其他维护中常用linux命令

1、测试端口连接

telnet ip port
2、查看已启动的端口

netstat -an | grep 端口号
3、查看应用进程

ps -ef |grep java
4、修改权限

chomd  XXX(对应的权限)  文件目录
5、修改文件或目录下所有文件所有者和组

Chomd -R 用户名:组名  文件目录
6、查看目录内容

ls 或者ls -l (简写ll)
7、查看文件输出

cat 目录/文件名

或者

Vi 目录/文件名 按i可进入编辑

按 G 到文档末尾

按 gg 到文件首行

不保存退出

Esc   :q!

保存退出

Esc   :wq

vi 进入文档文档后查找关键字

Esc 进入命令行

/关键字

按n向下继续查找

按N向上继续查找
8、杀进程

Kill -9 进程号
9、复制

cp -r 源目录  目标目录
10、移动

mv  -i 源文件或目录 目标文件或目录
11、删除

 rm -R 文件目录
12、 切换工作目录

cd  相对路径或绝对路径

~也表示为 home 目录 的意思, 则是表示目前所在的目录, 则表示目前目录位置的上一层目录。

1、安装Java运行环境。
1)双击运行 jre-7u1-windows-i586-sexe ;
2)勾选 "更改目标文件夹" ,这样可以看到安装到的目录 ;
3)下一步,直到安装完成。
2、安装Tomcat。
1)双击运行 apache-tomcat-7022exe ;
2)一路下一步,直到 Configuration 页面 ;
>安装Winfows服务首先要添加安装程序,添加安装程序步骤如下:
1、将Windows服务程序切换到设计视图, 右击设计视图选择“添加安装程序”
2、切换到刚被添加的ProjectInstaller的设计视图
一般设置如下:
设置serviceInstaller1组件的属性:
1) ServiceName = 服务名称
2) StartType = Automatic ,即自动
设置serviceProcessInstaller1组件的属性
1) Account = LocalSystem,账户一般设置为本地系统
3、生成解决方案
安装服务:
方法一、使用DOS命令安装window服务
1、在服务所在的文件夹下的bin\debug文件夹下找到exe文件(例如WindowsService1exe)
将此文件拷贝到你想安装的文件夹中。
2、进入DOS界面
(VS2008-->Visual Studio Tools-->Visual Studio 2008 命令提示)来进入DOS,直接用cmd可能有些命令找不到;
3、输入
方法二、使用安装项目安装windows服务
个人比较推荐这个方法,选择目录安装更灵活,而且不用在DOS环境下运行。
因为本人比较懒,直接给出别人总结的地址
注意,以后每次服务项目有更改的时候,需要编译服务后,在安装项目中刷新依赖项!!!
方法三、
在ProjectInstallercs的后台代码中添加安装服务和卸载服务的代码
/// <summary>
/// 安装服务
/// </summary>
/// <param name="stateSaver"></param>
public override void Install(SystemCollectionsIDictionary stateSaver)
{
MicrosoftWin32RegistryKey system,
//HKEY_LOCAL_MACHINE\Services\CurrentControlSet
currentControlSet,
//\Services
services,
//\<Service Name>
service,
//\Parameters - this is where you can put service-specific configuration
config;
try
{
//Let the project installer do its job
baseInstall(stateSaver);
//Open the HKEY_LOCAL_MACHINE\SYSTEM key
system = MicrosoftWin32RegistryLocalMachineOpenSubKey("System");
//Open CurrentControlSet
currentControlSet = systemOpenSubKey("CurrentControlSet");
//Go to the services key
services = currentControlSetOpenSubKey("Services");
//Open the key for your service, and allow writing
service = servicesOpenSubKey(conServiceName, true);
//Add your service's description as a REG_SZ value named "Description"
serviceSetValue("Description", "描述语言");
//(Optional) Add some custom information your service will use
config = serviceCreateSubKey("Parameters");
}
catch (Exception e)
{
ConsoleWriteLine("An exception was thrown during service installation:\n" + eToString());
}
}
/// <summary>
/// 卸载服务
/// </summary>
/// <param name="savedState"></param>
public override void Uninstall(SystemCollectionsIDictionary savedState)
{
MicrosoftWin32RegistryKey system,
currentControlSet,
services,
service;
try
{
//Drill down to the service key and open it with write permission
system = MicrosoftWin32RegistryLocalMachineOpenSubKey("System");
currentControlSet = systemOpenSubKey("CurrentControlSet");
services = currentControlSetOpenSubKey("Services");
service = servicesOpenSubKey(conServiceName, true);
//Delete any keys you created during installation (or that your service created)
serviceDeleteSubKeyTree("Parameters");
//
}
catch (Exception e)
{
ConsoleWriteLine("Exception encountered while uninstalling service:\n" + eToString());
}
finally
{
//Let the project installer do its job
baseUninstall(savedState);
}
}
代码添加完成后
添加window service安装的批处理命令
1)在项目添加一个文本文件,更名为installbat,编辑文件的内容如下:
@echo off
C:\WINDOWS\MicrosoftNET\Framework\v2050727\InstallUtilexe -i "WindowsService1exe"
@pause
2)在项目添加一个文本文件,更名为uninstallbat,编辑文件的内容如下
@echo off
C:\WINDOWS\MicrosoftNET\Framework\v2050727\InstallUtilexe -u "WindowsService1exe"
@pause
说明:上面绿色字体为服务名称
编译完成后将debug的文件拷贝到想安装的目录下,点击installbat即完成安装。

How to migrate mailboxes from one Microsoft 365 or Office 365 organization to another | Microsoft Docs

如果大于500用户,或者大量SharePoint数据迁移,建议找供应商 Microsoft solution provider 。

Fabrikam 的用户、组、其他对象将被在O365手动创建,通过脚本导入到portal或通过Active Directory Domain Services (AD DS) consolidation合并到Contoso Active Directory。

完成后,所有的Fabrikam账户将存在于 Contosocom Office 365组织下,并使用@fabrikamcom 作为UPN。最终使用哪个地址取决于你的意愿。

如果使用第三方工具,在迁移前准备好License。

对于Outlook 2010及以后的版本,只需要 remove the Outlook user profile 然后 create it again 。

对于 Outlook 2007 和 Outlook 2010,当你重启客户端,auto-discover 会重新配置client,并重新编译OST文件。

对于 Skype for Business 客户端,一旦迁移完整,因为进程创建了一个新的profile,所以你得 add contacts 。

租户 Fabrikam Office 365组织,被迁移对象;目标租户是 Contoso Office 365组织,迁移到对象。

增加目标Office 365组织中的许可证,以容纳将从源租户迁移的所有邮箱。

在源租户和目标租户中创建管理员帐户,用于从Office 365迁移到另一个Office 365。某些迁移工具可能需要源租户中的多个管理员帐户来优化数据吞吐量。

在目标租户 Contoso 创建资源:

告知用户迁移:To communicate the migration to the end users in your organization:

完成如下,准备domain的迁移:

在目标租户 Contoso 进行domain verification 以用于 Fabrikamcom email domain。

contosocom 的Microsoft 365 admin center,添加 Fabrikamcom domain 并在DNS创建 TXT 记录用于 verification。

现在就执行此步骤,以允许DNS传播,因为它可能需要高达72小时。最终validation将此后进行。

迁移计划:

创建需要迁移的用户mailbox的master list。

创建mailbox映射文件 mapping CSV,以用于迁移工具。当迁移的时候,该文件将用于迁移工具匹配源mailbox和目标租户的mailbox。建议用 onmicrosoftcom 初始化域作映射,因为email domain将会变更。

然后,进行TTL测试

在源租户的 Microsoft 365 admin center,关闭 directory sync 。 该进程至少需要24小时,所以必须在迁移前做完。一旦在Portal上关闭该配置,任何对源租户AD DS的变动都不会同步到O365组织。相应地调整现有的用户和组资源的调配进程。

试图传递新邮件的Internet邮件服务器将对邮件进行排队,并尝试24小时重新传递邮件。使用此方法,某些电子邮件可能会返回未送达报告(NDR),具体取决于尝试发送电子邮件的服务器。如果这是一个问题,请使用MX记录备份服务。有许多第三方服务将您的电子邮件排队数天或数周。迁移完成后,这些服务将向新的Office 365组织发送排队邮件。

将O365的主MX记录变更位不可访问的domain,比如"unreachableexamplecom"。投递新邮件的Internet mail servers会队列化邮件并在24小时内重新投递。这种方式下,取决于服务器的投递方式,一些邮件会返回 non-delivery report (NDR) 。 如果有问题,则使用一个备份MX记录服务。有很多第三方服务,会队列持有邮件数周。一旦迁移完成,这些服务会投递邮件到新的O365组织。

Primary email domain fabrikamcom 在迁移到目标租户前,必须从源租户的所有对象上删除。

contosocom 租户完成Fabrikamcom domain的verification。 待从源租户移除后1小时配置。

配置 auto-discover CNAME (internal/External) optional

如果使用了AD FS,在目标租户给AD FS配置新域。

contosocom 租户开始mailbox激活 > 给新用户配置licenses

给新用户,设置 Fabrikamcom email domain作为 primary address 。

如果没有使用 password hash sync 特性, pass-through authentication or AD FS ,在目标租户(Contoso)的所有mailboxes上设置密码,并提示用户。

Mailboxes被授予license并激活后,转换邮件路由。将Fabrikam MX记录指向目标租户 (Contoso) 。当MX TTL超时,mail 将流入新的空mailboxes。如果使用 MX backup service,就可以释放这些email到新mailboxes。

对目标租户中新邮箱的邮件流执行验证测试。

如果使用了Exchange Online Protection (EOP):在目标租户重新创建源自源租户的 mail flow rules (also known as transport rules), connectors, block lists, allow lists等。

为了最大限度地减少停机时间和用户不便,请确定最佳迁移方法。

通过第三方迁移工具。

迁移结束时,Outlook 2007和2010将为每个用户同步整个邮箱,这将消耗大量带宽,具体取决于迁移到每个邮箱的数据量。默认情况下,Outlook 2013将只缓存12个月的数据。此设置可以配置为更多或更少的数据,例如,只有3个月的数据,这可以减轻带宽使用。

用户在回复迁移的电子邮件时可能会收到NDR。需要清除Outlook自动完成列表(Auto-Complete List,也称为昵称缓存nickname cache)。若要在Outlook 2010以后的版本中从自动完成列表中删除所有收件人,请参阅 Manage suggested recipients in the To, Cc, and Bcc boxes with Auto-Complete 。或者,将旧的传统DN作为x500代理地址添加到所有用户。

检查一下你CSS和JS文件的路径,看看是否正确,这里不要用网站的根路径,你可以试试下面这个方式:
bundlesAdd(new ScriptBundle("~/bundles/jquery")Include(
"~/Scripts/jquery-{version}js"));
然后再需要使用的地方
@ScriptsRender("~/bundles/jquery")
在页面上会自动根据当前Web应用程序的路径应用到JS上

一直在用Nginx做反向代理,但是其SSL的配置只用过普通的服务端单向证书。在Google,百度狂搜一通之后,一无所获,依旧是那老三样,只有单向认证的示例。浏览器端双向认证的配置好像从没人写过。
因为要来回的设置所有直接使用域名 *** 作比如:
chaodiquancom 解析到 IP上面(IP要用你自己的,如果使用CDN另算)
这个是主要在最后的实际应用的测试的使用会用到
因为是自己实际应用,只好从OpenSSL的客户端证书开始学起,一点一点啃,大段大段的E文让我这半瓶子醋看的头晕眼晕。
的提示下终于把这个证书搞定,来秀一个。
这需要一下几个步骤:
1) 安装openssl用来做证书认证
2) 创建一个CA根证书
3) 创建一个自签名的服务器证书
4) 设置Nginx
5) 创建客户端证书
6) 安装客户端证书到浏览器
7) Profit
1)
这一步我是在ubuntu下直接apt-get装的openssl, 配置文件安装在/etc/ssl/opensslcnf
修改opensslcnf的以下几段
[ ca ]
default_ca = foo
Openssl将会寻找名称为foo的配置段
[ foo ]
dir = /etc/ssl/private
database = $dir/indextxt
serial = $dir/serial
private_key = $dir/cakey
certificate = $dir/cacrt
default_days = 3650
default_md = md5
new_certs_dir = $dir
policy = policy_match
policy_match 我保持默认值没有改
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = match
commonName = supplied
emailAddress = optional
默认签发有效期为10年,你可以自己设置一个合适的值
2)
创建一个新的CA根证书
下面的几个脚本我都放在/etc/ssl目录下
new_cash:
#!/bin/sh
# Generate the key genrsa意思是生成一个私钥
openssl genrsa -out private/cakey
# Generate a certificate request req表示生成证书,还能生成ca证书,-new表示产生一个新csr,需要输入一些信息,-key表示私钥,
openssl req -new -key private/cakey -out private/cacsr
#
Self signing key is bad this could work with a third party signed
key registeryfly has them on for $16 but I'm too cheap lazy to get
one on a lark
# I'm also not 100% sure if any old certificate will
work or if you have to buy a special one that you can sign with I could
investigate further but since this
# service will never see the light of an unencrypted Internet see the cheap and lazy remark
# So self sign our root key
x509是一个证书生成工具,显示证书内容,转换格式,给CSR签名等
-signkey用来处理CSR和给证书签名,就像CA。使用时得同时提供私钥,把输入文件变成自签名的证书,如果输入CSR文件,则生成自签名文件
-days证书有效时间
-in输入文件 -out输出文件
openssl x509 -req -days 3650 -in private/cacsr -signkey private/cakey -out private/cacrt
#
Setup the first serial number for our keys can be any 4 digit hex
string not sure if there are broader bounds but everything I've seen
uses 4 digits
echo FACE > private/serial
# Create the CA's key database
touch private/indextxt
# Create a Certificate Revocation list for removing 'user certificates'
gencrl在index文件中生成一个CRL相关的信息
-crldays是crl过期的时间
openssl ca -gencrl -out /etc/ssl/private/cacrl -crldays 7
执行 sh new_cash 生成新的CA证书
3)
生成服务器证书的脚本
new_serversh:
#
Create us a key Don't bother putting a password on it since you will
need it to start apache If you have a better work around I'd love to
hear it
openssl genrsa -out private/serverkey
# Take our key and create a Certificate Signing Request for it
openssl req -new -key private/serverkey -out private/servercsr
# Sign this bastard key with our bastard CA key
-cert CA本身的证书名
-keyfile CA本身的私钥
这句就是相当于CA用他的证书和私钥,根据服务器的证书,来给出一个CA认证的证书
openssl ca -in private/servercsr -cert private/cacrt -keyfile private/cakey -out private/servercrt
执行 sh new_serversh 生成新服务器的证书
4)
最要命的一步,尝试多次后终于搞明白。
配置 nginx 的ssl支持
我的配置如下:
# >

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13447565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存