归档文章: Linux

计算机证书相关知识总结

我们不是谈 毕业证书这种证书。 说的是计算机里的证书概念。 对于大多数计算机工作的同学想必对这个术语肯定是不陌生的,但并不是所有人会亲自使用,大部分可能是被动的用到了。 证书 certificate 是 TLS(transport layer security) 里一个重要的组成部分(模块), 大多数我们过去经常称为  SSL . 这个也许你就不陌生了。 顾名思义, 这个是和安全相关的。

谈到证书,免不了要简单说下 key (钥匙)。  证书是用来证明, 而为了传输数据的安全, key也是必不可缺的部分。 下面我们来看看, 证书(简写为cert)和钥匙是如何配合来保证传输数据的安全的。

一TLS(SSL)工作机制

  1. 例如我们访问一个网站通常是https(https://).
  2. 网站发来公钥和它的证书 (稍后我们来讲如何生成钥匙和证书)
  3. 我们的浏览器确认这个证书是否是被三方可信的机构签证的证书,如果是有效且可信的,浏览器会认为是安全的。否则会提示你不安全的链接。
  4. 这时候浏览器收到了公钥, 然后用公钥加密一个随机的对称钥匙串,和加密后的url地址和http请求数据发送给服务器。
  5. 服务器收到了加密的一个钥匙串(上一步客户端浏览器随机生成的)。这时候可以解密(通过私钥解密)拿到客户端随机生成的密钥(对称密钥)。并用此密钥解密http请求并拿到http请求数据。
  6. 此时服务器处理此客户端的请求,然后将处理结果用密钥(还是随机生成的密钥)加密后,发送给客户端的浏览器。
  7. 浏览器解密数据,并展现。

更多…

nginx multiple server block in same port

花了半个晚上的时间终于把apache http server 迁移至 nginx + php-fpm.

nginx 一个端口多个server配置的实现。

测试nginx版本: 1.6.3  说在前面的话,因为没有编译最新的nginx,所以如下所陈述的方法很可能在新版本上不正常。 另外,所提到的问题,也可能已经修复。 (因为编译需要依赖一些其他的devl 包,所以为了节省时间快速迁移,直接yum 安装了所有需要的包)

更多…

android gradle 编译aapt finished with non- zero exit value 1错误解决

./gradlew build 时报错

错误类似如下:

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:  Process ‘command ‘C:\Users\Vishnu Ruhela\AppData\Local\Android\sdk\build-tools\21.1.2\aapt.exe” finished with non- zero exit value 1

1. 获取更详细的错误日志

2.   redhat 系统安装 libstdc++

安装后重新build,问题解决。

apache httpd服务器返回html和css content-type错误

apache httpd服务器返回html和css content-type错误,会导致浏览器工作不正常。具体的现象就是,html 代码被浏览器当作纯文本的内容直接显示,而不会去渲染。 css的代码也会当作纯文本的内容,下载后并不会应用样式到html代码。

举个例子,当我打开 http://www.hissummer.com/index.html 时,返回的是

<html>xxx</html> 给用户。 更多…

eclipse pdt 如何导入php工程以及invalid project content directory 错误解决

linux 里开发php, 使用php eclipse 是一个选择。毕竟eclipse在linux里运行起来比较顺手,如果平时用过eclipse看过java代码,想必对eclipse也会更多的熟悉。

eclipse pdt(eclipse的php版本) 怎么导入php工程呢。 php导入eclipse 是比较特殊的, php不像java工程, php工程纯粹是由纯文本文件组成的。 没有任何和工程相关的概念,仅仅是一个文件夹里面放了一些html和php罢了。

导入步骤 更多…

linux中如何批量给照片加注水印

由于要上传照片,想加上自己的水印,google了一番, linux 有一个非常好用的工具可以用来进行图片合成,包括加水印。非常方便使用。

网友有开发了bash脚本,可以方便的批量加水印。经过我的测试,如下脚本运行正常。 但是在使用之前,一定要确保你安装了composite 命令哦。 此命令包含在 ImageMagick的包中,安装ImageMagick 即可。

更多…

goagent 代理无法close http链接导致网页打开缓慢和无法正常显示

自动最近换了移动的宽带后, fanqiang 就一点也不顺畅了。  gae虽然不好用了, 但是goagent + php(vps) 还是不错的。  后来goagent总是莫名其妙的挂起,所以后面又转向使用 socks over ssh.   有条件的话,还是建议大家使用socks over ssh。 基于ssh客户端即可,方便使用, 也安全。  更多…

qark 无法生成报告

python2.7 qark.py –source 1 –pathtoapk ./sampleApps/goatdroid/goatdroid.apk  –exploit 0 –install 0 -d 10

无法生成报告,提示

ERROR – Problem with reporting; No html report generated. Please see the readme file for possible solutions.

到底是什么原因 呢?也没有个友好提示。 放心吧, 从readme file 中你肯定看不到任何的solutions.

不断的debug,发现module/report.py 中当无法使用souplib 的 beautifulsoup 的方法时,导致设置 report flag 为false。

所以安装souplib即可。sudo /usr/local/bin/pip install souplib

这下报告生成。

备注:

最新的qark代码 , git clone后需要先安装后才能使用。 且qark.py 改为了 qarkMain.py 。

python no module named _curses的问题解决

linux系统默认安装了python2.6, 因为qark建议使用2.7.6, 虽然python2.6 也能运行起来(貌似有些问题)还是源码安装python2.7.

下载源码,configure,make,makeinstall后。 发现python2.7 import curses时 提示 找不到_curses 错误。  用pip(python2.7 如果configure的时候–with-ensurepip=yes 则会自动帮你安装pip)安装了curses-2048  (sudo pip install curses-2048)  仍然继续提示

  import curses
File “/usr/local/lib/python2.7/curses/__init__.py”, line 15, in <module>
from _curses import *
ImportError: No module named _curses

到底是什么原因呢?明明安装了 curses 呢?

答案:

仔细分析,你应该会发现 第一次没有安装 curses 模块和安装后, 其实提示的错误是不完全一样的。  正常没有安装 curses时,会提示找不到模块 curses, 而这一次提示的是 no module named _curses , 而且提示你在 curses/__init__.py 里第几行的错误。实际上已经load了curses,只是再加载的中间出现了错误。

经过对比python2.6 ,终于发现,原来 pythong2.7/lib-dynload 里没有相应的 curses 库

_curses_panel.so
_curses.so

看到名字,你也许就明白了, 原来 _curses 是指这个 _curses.so 无疑了。

此时你将python2.6 的 这2个so文件拷贝到 pythong2.7 的lib-dynload 文件夹下, 就解决了问题。

but,至于为什么pip install curses-2048 没有安装此2个so, 也不清楚,但是问题总算解决了, 具体的原因待更进一步分析。

 

写个简单脚本监控下数据库

由于空间内存不大,所以经常碰到mysql停止了运行。 具体原因还没有时间去定位,不过vps本来内存就不大, 实际优化也没有太大意义。 写个简单监控脚本,让它自己尽管崩溃, 然后自己重启吧。  因为毕竟崩溃还算不上频繁,这个方法也是比较简单粗暴,也有效了。

更多…