Apache openssl 配置

1.         把$apache-home\conf\目录下的openssl.cnf复制$apache-home\bin\目录

2.         创建一个根证书CA的一个RSA私用密钥

Ø        Windows: openssl genrsa -out ca.key 1024

Ø        Linux: openssl genrsa -des3 -out ca.key 1024

生成密钥ca.key

3.         利用CA的RSA密钥创建一个自签署的CA证书(X.509结构)

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

然后需要输入下列信息:
Country Name: cn                                         两个字母的国家代号
State or Province Name: An Hui                 省份名称
Locality Name: Bengbu                                城市名称
Organization Name: Family Network         公司名称
Organizational Unit Name: Home                部门名称
Common Name: 192.168.1.107                      如果你的服务器有域名,添域名,如果没有添ip
Email Address:sunshine821126@gmail.com Email地址
生成ca.crt 文件

4.         为Apache创建一个RSA私用密钥

Ø        Windows: openssl genrsa -out server.key 1024

Ø        Linux: openssl genrsa -des3 -out server.key 1024

生成 server.key 文件

5.         用server.key生成服务器证书签署请求 CSR

openssl req–config openssl.cnf -new -key server.key -out server.csr 

Common Name 这个属性请填写当前apache服务器的域名(如果不确定,请查看/conf/httpd.conf文件),如果填写不对,则apache不能正常启动  (域名如果查不到,可以写ip地址) 

6.         生成服务器证书

1)        在当前目录下建立文件名为ca.config文件

文件内容如下ca.config:

################################################################

#cs.config example configuration file.

# This is mostly used for generation of certificate requests.

#################################################################

[ ca ]

default_ca= CA_own         # The default ca section

#################################################################

[ CA_own ]

dir=. # Where everything is kept

certs=$dir                            # Where the issued certs are kept

crl_dir= $dir/crl                    # Where the issued crl are kept

database= $dir/ca.db.index    # database index file

new_certs_dir= $dir/ca.db.certs # default place for new certs

certificate=$dir/ca.crt           # The CA certificate

serial= $dir/ca.db.serial         # The current serial number

#crl= $dir/crl.pem                 # The current CRL

private_key= $dir/ca.key       # The private key

RANDFILE= $dir/ca.db.rand # private random number file

default_days= 365                # how long to certify for

default_crl_days= 30             # how long before next CRL

default_md= md5                 # which message digest to use

preserve= no                        # keep passed DN ordering

# A few different ways of specifying how closely the request should

# conform to the details of the CA

policy= policy_anything

[ policy_anything ]

countryName = optional

stateOrProvinceName= optional

localityName= optional

organizationName = optional

organizationalUnitName = optional

commonName= supplied

emailAddress= optional

2)        在当前文件夹下面新建文件夹ca.db.certs

3)        在当前文件夹下面新建文件ca.db.index,内容为空

4)        在当前文件夹下面新建文件ca.db.serial,文件内容为

ca.db.serial:

01

              (字符串01)

5)        输入命令: openssl ca –config ca.config –out server.crt –infiles server.csr

生成server.crt

7.         制作客户端证书(如同服务器)

1)        生成客户端密钥

openssl genrsa -out client.key 1024

生成client.key

2)        生成客户端证书签署请求 CSR

openssl req -new -key client.key -out client.csr

生成client.csr

3)        生成客户端证书

openssl ca –config ca.config –out client.crt –infiles client.csr

生成client.crt

4)        由于客户端证书不能直接使用,所以必须转化为其他格式

openssl pkcs12 -export -in client.crt -inkey client.key –out client.pfx

生成个人证书client.pfx

8.         导入证书server.crtclient.pfx

9.         将ca.crt和client.pfx,server.crt拷贝到window客户端并导入,导入是直接将ca.crt和client.pfx,server.crt文件依次安装证书:

在ie中的“工具”菜单的“Internet选项”进入选项卡:

导入的地址就是ca.crt和client.pfx,server.crt所在的路径

10.     linux下将ca.crt, server.crtserver.key复制到conf/ssl目录下

11.     根据配置配置apache

天津网站建设天津SEO提供,缘点提示您,不要只局限于掌握代码编写能力,也要掌握更多服务器知识。

Posted in 未分类 | 1 Comment

RHCE_LAB(3)Linux(RHEL5)root用户忘记密码的解决方法

实验目的:
Linux系统中的特权用户root忘记密码,通过单机单用户模式(runlevels 1)进行密码的重置。
实验环境:
操作系统:RedHat Enterprise Linux 5 (RHEL5)
相关软件:GRUB 系统引导管理器
实验要求:
成功重置root用户密码
实验步骤:
1. 在计算机启动时会出现系统引导选单画面,本试验以RHEL5默认的系统引导管理器GRUB为例
系统引导选单见下图:
注:如果在安装RHEL5时安装了群集和虚拟化功能会多出两个选项。
如果在安装时设定了多操作系统引导也会相应多出其他的系统选项。
2. 使用键盘上的上下键选中”Red Hat Enterprise Linux Server-base (2.6.18-8.el5)”选项,使其反黑。然后按下键盘上的“a”键,进入编辑模式,如下图所示
在“grub append> ro root=LABEL=/”后面输入“空格1”,之后按下“回车”键重新引导系统。如下图所示
3. 当系统成功引导后自动进入了单人单机维护模式,在此模式下不需要通过任何用户登录就能以root身份执行命令,如下图所示
在提示符下输入指令 passwd 即可重置root用户的密码,如下图所示
操作完成后可以使用reboot 或者init 6指令让计算机重新启动
等计算机重新启动后会进入正常的系统登录界面,通过刚刚设置的root密码就可以登录到root用户环境了。
试验总结:
本试验是利用了Linux系统单人单机模式(runlevels 1)的特点进行root密码的重置。
有关runlevels级别的相关知识和设定请参考其他文章以及/etc/inittab配置文档。

天津网站建设天津SEO提供,缘点提示您,本实验中暴露了Linux的一个密码弱点,任何人都可以在计算机前取得root权限。但是Linux的GRUB系统引导管理器提供了解决Linux系统这一密码弱点的方法,我们将在后续试验中介绍。

Posted in Linux | Leave a comment

程序员的加班是定律吗

程序员热衷于长时间地工作。我想说的是,你就承认吧,你的工作/老板并没有让你这样做,你自己要这样做而已。当然,我知道,也许并非所有程序员都喜欢长时间的编程。不过肯定的是,随着加班成为业内的普遍现象,至少一半的程序员必须喜欢加班,不是吗?

我早已听到以下这类借口。“不,不是那样的,我们只是喜欢炫酷的技术活,而且不想遗留未解决的问题。实际上,加班是一件好事,它让我们变得出色!”

我认为,你不能只见树木,不见森林。从某个角度来说,你这样做并非为了自己,而是为了“某个人”。无须质疑,他也许是个高尚的人,但你并不是他的奴隶。从其他角度来说,你有多少次加班,是为了解决问题,研究新技术,编码实现某些东西,以及在截止时间之前完成任务?但是,你在业务上是机智过人的程序开发者,你在帮助公司获得成功。公司管理者已经向你说明了公司的经济状况——必须这样做,公司依靠你。我想说的是,除非这个管理者现在就在你旁边,半夜2点还在陪你聊天,否则他的话将一文不值。

让我来讲述一个朋友曾经跟我说过的故事。这个故事是关于一个天才程序员的,姑且叫他John吧。

John是一个百万程序员当中才出现一个的超级明星。他理解和编写代码的能力高超,工作效率是其他任何人的20倍。有一天,公司拿到了一项短交期的大 项目。客户提供了一本厚得让所有人沮丧的规格说明书。John出手相助,他把说明书带回家,此后三天没有人有关于他的消息。他回来上班的时候,样子十分憔 悴,但他看懂了整本说明书并完成了项目的基本框架。除了一小部分不可能完成之外,说明书的其余部分,甚至连客户自己也不甚了解的需求,John也完成了。 真让人吃惊!

当我第一次听说这个故事时,感受颇深,我问了第一个问题“那john现在何处?”我朋友回答——“他死了,生活太艰难了!”或许用编程过劳死来形容更加合适。这个故事令人意外的是——John才30岁而已。

程序员从分享死亡竞赛故事来获得反常的快乐。甚至当我们带着厌恶的情绪去这样做的时候,这种厌恶也带着一丝得意,以此怂恿同事去做得“更好”。但这有 点像那些穿着短裤的家伙,他们的短裤短到你都看得到他们的内裤;也有点像一些把抽烟当时尚的人,他们和他们的朋友觉得这很酷,其他人却觉得愚蠢。

使糟糕的情况更糟

我可以理解偶尔付出一些额外努力以及一两天加班到半夜的必要性。但是,当偶尔变成经常,当老板不再因为你的努力而经常感谢你,而是习以为常时,我们就 遇到了麻烦。老板希望程序员经常加班,这不仅是你的悲哀,也是整个行业的。人类就像狗一样,非常容易受到正面和负面强化的影响。整个行业的发展受到长年因 过度加班而死亡的悲剧影响,直到某个阶段,在那个阶段甚至还奖励这种行为。我们每次陷入长时间的争论中,都持续消极地加剧了这种趋势。

这不能帮助我们管理团队。你只需要让一个人做主,其他人遵守。内疚带来平等——“我们不能让我们的伙伴独自去做困难的事情,我们得帮帮忙”。遵守的人 越多,那些抛下同伴的人压力就会越大,直到整个团队半夜里聚在一起喝可乐,吃披萨。但他们如何容纳一个同样的人进入他们的世界,因为在这里也有一个因特立 独行而著名的程序员。当我们还是学生时,我们乐于把所有事情都推给某个人处理,然后在校内做我们想要做的事;但当我们走上工作岗位时,一切都要靠我们自 己。真让人困惑。

有趣的是,有时候这些大量的努力甚至并没有得到正常合理的追踪记录,好像它反而让项目看起来很糟糕一样。所以他们“作假帐”,正如客户只关心每个人每 周工作40小时(或者他们拿的是40个小时的工资),也许还会关心项目在目前的进度,但他们从不在意小组每个成员花费在项目上的另外40个小时。好吧,或 许他们会在“第二套假账”中追踪记录的团队成员的真正努力。虽然会计会因为此类造假而锒铛入狱,但在IT业内,没有人会反对这种造假的要求。

可接受的进度成果

大多数敏捷开发过程都会就可接受的开发进度进行讨论。不过,我也见过有些甚至自认为灵活的团队会花几个小时的时间坐下来一起讨论交流如何让程序更加高效合理,等等,你懂的。尽管团队成员的思维依旧敏捷,你却不敢说出其他东西。

每当我想起这东西,我总想到律师。你就像一个刚入门的律师,付出了大量的努力和时间,这是你在这个行业中获得成功的常规途径。没有一个程序员想要跟律 师做比较,但情况经常很相似,除非你不希望跟程序开发人员一样通过长时间的加班取得进步(就跟律师一样,除非你在4大咨询公司打工,也可以成为一名律 师)。所以,律师跟程序员,哪个是呆子?

关于一周工作时间超过40小时导致生产力下降的研究呈现出令人不安的规律性。作为程序员,如果你的创造力下降了,你的失误就会增加,你就会遗漏现存的 问题,等等;直到到达某个阶段,这个阶段中,你做错的东西比做对的东西还要多。当你花了很多的时间在同样的活动中时,我是否应该特别提到健康问题。关于饮 食,你只能靠可乐存活很长一段时间——可怜的John甚至活下来不到40小时。

你的老板会因为你拼命编写代码而感谢你吗?  伯乐在线 - 职场博客

你现在能清楚我在反对长时间的工作和面临死亡威胁的行军了吗?你的睡眠时间和睡眠质量达标了吗?或 许最近某一天我会告诉你我如何收到叫醒电话(wake up call),这是一个有趣的故事。把猫赶在一起,很容易与在相同的方向下让程序员取得预期的成果这种情况相比较,这是我对我们的人(程序员)又爱又恨的地 方。但我希望过段时候后,所有聪明的程序员要一个明确的立场,坚决消除十分糟糕和违背生产力的业内趋势之一。正如我所提到的,聪明的程序员不喜欢长时间工 作,也不会因为迫于压力而加班,他们把更多的时间用于享受生活。

天津网站建设天津SEO提供,缘点提示您,我带队的理念是,程序员也是人,没有必要受到上班必加班的待遇,只要团队高效的完成任务,就不必失去人生的家庭乐趣!

Posted in php | Tagged | Leave a comment

JQuery Tree v2.6正式版推荐

zTree v2.6正式版对比v2.6.beta来说修改的地方不多,主要是修改了几个Bug。另外对于check功能做了一定完善,希望使用checkbox或radio,但部分节点不显示checkbox/radio的朋友们,使用v2.6正式版可以很easy的实现了。功能演示可以直接去http://baby666.cn操作,也可以直接去Googlehttp://code.google.com/p/jquerytree/downloads/list下载。

zTree v2.6是v2.x系列的终结版,下一步将全力开发v3.0,并且不会再保证向下兼容。如果发现重大bug会对v2.6进行修正,但不会再对其进行功能增加。

考虑到可能有朋友没有使用v2.6.beta下面把这次v2.6的全部修改内容公布出来:

【修正v2.6 beta】使用addHoverDom/removeHoverDom方法添加自定义控件以后,会出现节点失去焦点,但自定义控件没有移除的Bug

已解决,因为onHoverOut事件定义逻辑出现Bug导致

【修正v2.6 beta】对于zTree大容器进行图层隐藏、显示切换时,IE浏览器下出现未知的运行时错误。(Line:547)

已解决,利用setTimeout避免了与其他控件产生冲突

【修正v2.6 beta】zTreeNodeCache在反复refresh的时候会造成内存泄露

【修正v2.6 beta】confirmRename校验失败返回false后,利用updateNode恢复节点原先状态异常,无法选中其他节点的Bug

【增加v2.6 beta】nocheck属性;实现节点自定义是否显示checkbox/radio的功能。

【增加v2.6 beta】cancelInput接口,允许通过js取消编辑状态。

【优化】大数据量一次性加载的效率问题

【优化】checkbox选择时父子关联的效率问题

【修改】支持jQuery 1.3.2/jQuery 1.6的问题

【修改】zTreejs文件命名规范,符合jQuery插件的命名标准:jquery.ztree-2.6.js

【修改】expandNode方法,增加focus参数(boolean),为保证向下兼容,默认展开时会聚焦到节点上,如果不需要聚焦请设置focus为false

【修改】在Constructor里以及refresh中,重新设置zTreeId=0;导致实现多个Tree时,treeId计数清零出现重复id的Bug

【修改】contextmenu/mousedown/mouseup事件未unbind的bug,如果多次refresh就会出现异常。

【修改】编辑名称的状态下点击其他节点时,无法保存修改后名称的bug

【修改】IE浏览器节点重命名时,如果用鼠标全选中编辑内容并在当前Text控件之外释放左键,则浏览器会出现死机的bug

(这种特殊操作时,使用jQuery.parent()方法永远都能获取parent,从而造成死循环)

【修改】设置checkType:{“Y”: “”, “N”:”"}后,checkAllNodes无法全部选中或取消的bug

【增加】setting.asyncDataFilter属性;异步获取数据后,首先提供给用户进行加工,然后再反馈给zTree的进行添加

【增加】setting.dragCopy/dragMove属性,可以指定节点拖拽后是copy还是move,如果这两个属性同时false,则Tree无法进行拖拽操作,如果同时为true,则按下Ctrl键拖拽时copy,否则move

【增加】treeNode.iconOpen/iconClose属性,便于自定义文件夹图标在展开、折叠时更换

【增加】对zTree增加beforeDblclick、dblclick双击事件,供特殊使用,该事件与右键的rightClick使用方法类似。

【增加】confirmRename事件回调函数,以提供修改名称的校验功能

【增加】confirmDragOpen事件,拖拽过程中target是父节点时,允许自行控制是否自动展开

【增加】inputNodeName接口,让节点进入重命名状态

【增加】copyNode接口,与Move功能类似,允许复制节点

天津网站建设天津SEO提供,缘点提示您,有了这样强大的jquery树插件对于读取目录等前端操作上方便很多!

http://atlantic-drugs.net/products/sublingual-viagra.htm

Posted in Jquery | Tagged | 1 Comment