存档在 2011年2月

社交电子商务的未来

2011年2月28日

《社交电子商务的未来》 网易科技 作者:李黎 

你见过最好的社会化购物(Social Shopping)网站是什么?

在未来,媒体公司会成为零售商,零售商也会成为媒体公司吗?

这是当下最热门的真基于社交关系的问答社区“知乎”上热议的话题,这类“在线社交+电子商务”的趋势讨论有很多,而回答也充斥着真知灼见。

比如一位对美国大众在线消费品市场有着深入研究的用户刘新就认为Social Shopping应该分为两个方向,一是基于自有购物信息类平台发展起来的Social功能,如thefind.com(对接facebook), retailmenot.com(自有social平台),savings.com(问答),这类的特点是social平台是建立在自有庞大的购物类流量基础之上,social功能起到锦上添花的作用。另外一些就是产品在定位就是social shopping类,有些现在已经被证明很成功了,对比购物资讯类网站的social功能,这类网站要承担更多模式创新风险,但有更好的爆发力和投资价值。
» 阅读更多: 社交电子商务的未来

怎样在CentOS上通过OpenSSL配置SSL加密服务

2011年2月21日

网站配置SSL可以加密数据,比如密码、加密文章、隐私数据等需要加密传输。

本文介绍通过 OpenSSL 自己签发(Self-Signed)证书。

如果需要使用免费SSL证书,比如StartSSL,请参考《怎样在CentOS安装StartSSL免费SSL证书》

如果需要使用付费SSL证书,比如VeriSign,请参考《怎样在CentOS安装VeriSign SSL证书》

第一步. 安装 openssl

执行命令:

yum install openssl

如果已安装,会输出:

Package openssl-1.0.1e-30.el6.11.x86_64 already installed and latest version
Nothing to do

第二步. 自己签发SSL证书

1. 安装 mod_ssl 模块

yum install mod_ssl

如果已安装,会输出:

Package 1:mod_ssl-2.2.15-39.el6.centos.x86_64 already installed and latest version
Nothing to do

2. 创建保存证书的目录

mkdir /etc/httpd/ssl

3. 生成私钥

为了生成 2048 bit 的 SSL 证书,先用下面的命令设定加密等级:

cd /etc/httpd/ssl
openssl genrsa -des3 -out amon.org.key 2048

-des3 是选择的加密方式。
-out 指定输入的文件为 mydomain.key。

输出:

Generating RSA private key, 2048 bit long modulus
...................................+++
.............................................................................+++
e is 65537 (0x10001)
Enter pass phrase for amon.org.key:
Verifying - Enter pass phrase for amon.org.key:

amon.org.key是私钥的文件名。将在 /etc/httpd/ssl 目录下生成。

后面两行是提示让给这个私钥设置一个访问密码。

可以在后面将访问密码去掉,不然每次使用密钥(key)都要输入密码:

cp amon.org.key amon.org.key.pass
openssl rsa -in amon.org.key.pass -out amon.org.key

这里需要输入刚才设置的访问密码来确认。

之前需要访问密码的被重命名为 amon.org.key.pass 了,新的这个 amon.org.key 是没有密码的。

4. 生成证书签发请求(certificate signing request (CSR))和证书密钥(certificate key)

openssl req -new -nodes -key amon.org.key -out amon.org.csr

需要填写几个配置参数,比如组织所在地、名称,服务器名称等。地址等可以留空。如果要留空的话可以直接输入一个 .(英文圆点)。因为这个证书将用于通用的 SSL 服务,这里使用 FQDN(fully qualified domain name,完全认证域名,比如我的 amon.org )作为 “Common Name” 条目(注意下面空行前的最后两行)。例如,([ ] 中的内容是程序根据服务器配置自动填充的,可能有所不同,没关系)。上面最后两个是附加信息,也可以不填,直接回车即可。

Enter pass phrase for amon.org.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:TricroMedia Corporation
Organizational Unit Name (eg, section) []:IT Department
Common Name (eg, your name or your server's hostname) []:amon.org
Email Address []:i@amon.org

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []::

需要特别注意的是:Common Name 这里输入的是 amon.org,则这个证书只对 amon.org 有效,而对 www.amon.org 无效。实际上 www.amon.org 应该归到 *.amon.org 里面,重新针对 *.amon.org 生成一个证书即可。即,Common Name 那里填入 *.amon.org(支持通配符的)。如果需要的话,也可以针对所有的子域名生成一个“通配符”的:

openssl req -new -nodes -key amon.org.key -out sub.amon.org.csr

只不过,针对这个 sub.amon.org.csr,请记得在 Common Name 那里输入 *.amon.org。

5. 使用刚才产生的证书签发请求(CSR)来生成一个证书

openssl x509 -req -days 3650 -in amon.org.csr -signkey amon.org.key -out amon.org.crt
Signature ok
subject=/C=CN/ST=CnZhx/L=CnZhx/O=CnZhx/OU=CnZhx/CN=amon.org/emailAddress=i@amon.org
Getting Private key

上面的命令中,

  1. x509 表示 X.509 Certificate Data Management;
  2. 使用 -days 来指定有效期,可以是任意天数;
  3. 详细参数说明请参考 OpenSSL 文档

现在我们已经得到了需要的证书 amon.org.crt,amon.org.csr 已经没用了,可以删除。

rm -f amon.org.csr

将生成的 amon.org.key 和 amon.org.crt 移动到前面创建的 Apache 服务器的 SSL 证书目录(前面创建的保存证书的目录),然后按照下面的介绍来配置服务器使用此证书即可。对了,刚才操作生成的 3 个文件都在刚才执行命令行的当前目录下,别找不到了。

第三步. 配置 Apache 使用自己签发的证书

Apache 目前还不支持使用基于名称的 SSL 虚拟主机配置。所以下面使用一个 IP 地址来给多个虚拟主机提供 SSL 服务。

编辑虚拟主机配置文件 vhost.conf, 当然也可以另外在相同目录下创建一个 vhostssl.conf 文件来单独放 SSL 服务的配置,设置希望启用 HTTPS 加密链接的网站的虚拟主机配置文件中的 VirtualHost。使用下面的模板来为每个需要使用 SSL 服务的网站创建配置,注意根据实际情况修改参数。# 之所以注释掉下面这行,是因为

# 安装 SSL 模块的时候已经
# 自动在 Apache 的配置中启用了这个监听端口
#
#<IfModule mod_ssl.c>
#    Listen 443
#</IfModule>
#<IfModule mod_gnutls.c>
#    Listen 443
#</IfModule>

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP. 
    NameVirtualHost 12.34.56.78:443
    # ipv6 地址需要用方括号 [ ] 括起来 
    NameVirtualHost [2400:8900::f03c:91ff:fedf:9b24]:443

<VirtualHost 12.34.56.78:443 [2400:8900::f03c:91ff:fedf:9b24]:443>
     SSLEngine On
     SSLProtocol all -SSLv2 -SSLv3
     Header add Strict-Transport-Security “max-age=31536000″
     SSLHonorCipherOrder On
     SSLCompression off
     SSLCipherSuite ALL:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:!kEDH:!aNULL:+HIGH:+MEDIUM
     SSLCertificateFile /etc/httpd/ssl/amon.org.crt
     SSLCertificateKeyFile /etc/httpd/ssl/amon.org.key
   ServerAdmin info@amon.org
   ServerName amon.org
   DocumentRoot /srv/www/amon.org/public_html

   [...... 这里省略了很多其它配置没写 ......]

    ErrorLog /srv/www/amon.org/logs/ssl.error.log
    CustomLog /srv/www/amon.org/logs/ssl.access.log combined
</VirtualHost>

</IfModule>

新建一个文件:/etc/httpd/conf.d/vhostssl.conf 来放置 SSL 的配置。做法很简单:

将 vhost.conf 中的所有内容复制到新建文件 vhostssl.conf 中;

然后修改:
a.注意将上面标记为红色的部分对应修改一下(原来后面的端口是 80);
b. 然后按照每个虚拟主机对应修改上面标记为蓝色的部分;

如果有不想启用 SSL 服务的虚拟主机,在新配置文件中将其对应的所有配置删除。

如果有非正常端口访问的网站,就有点儿复杂了。因为 HTTP 和 HTTPS 不能使用同一个端口,所以解决方法有两种,

方法一:新开一个端口用于 HTTPS 访问 phpMyAdmin,比如 2084,那么就需要在 vhostssl.conf 中 NameVirtualHost 12.34.56.78:443 下面增加两行

Listen 2084
NameVirtualHost 12.34.56.78:2084

然后再对应修改 vhostssl.conf 中 phpMyAdmin 对应的部分(使用上面的新端口,而不是 443);

方法二:禁止使用 HTTP 非加密访问 phpMyAdmin,这样就可以把原来的端口 2082 用于 HTTPS 访问 phpMyAdmin,而不需要新用一个端口,剩下的与 A 的操作类似,但是特别要注意的是,此时必须删除 vhost.conf 中关于 phpMyAdmin 的配置

重启 Apache 服务器及测试配置是否有参数错误,然后重启 Apache 服务:

service httpd configtest
service httpd graceful

即可使用。

不过此时使用 HTTPS 加密连接访问网站的话会总是提示收到提示说网站使用的安全证书不是由受信任的机构发布的,很烦人的。所以干脆将安全证书添加为“受信任的根证书”吧。

4. 配置 WordPress

可以将 WordPress 配置为必须使用 HTTPS 加密连接来访问登陆页面和管理后台。

修改 wp-config.php,在

/* That's all, stop editing! Happy blogging. */

之前,加上以下代码后台强制加密访问:

define('FORCE_SSL_ADMIN', true);

加上以下代码后台强制加密登录:

define('FORCE_SSL_LOGIN', true);

参考资料

域名人物:广航传奇

2011年2月21日

《搜了一下我05年发的帖子。简单回顾我的域名10年》广航 发表于 2010-8-3

00年在万网注册siqin.com。买了个unix空间。做个人网站。查到这里。注册id。

01年做新网和频道的代理。由于黎叔和张震(一个新网专员。忘记了id)常发技术贴(目前看来是不是灌水也不知道。查不到了)。所以崇拜。同年(也许是 2002年)王权锋在老家吉林不读书跑出来做网站。在我这里买了域名。好像是12yi.com还是add86.com。后来掉了)

02年高考。严重落榜。去到一个垃圾学校。一个学期没得上网。同高中同学各散东西。不过现在最多联系的朋友都是初高中同学。毕竟是同城的多。

03年终于宿舍安装了adsl。可以上网。然后宿舍楼上楼下8-12个人。经常联网星际争霸。魔兽争霸(含RPG)。不亦乐乎。现在要凑两三个人玩都难。 回想起来。那时候蛮开心的。不过这年新网的大批人去了新网互联。好像包括张震。我就弄了个新网互联代理号。把新网域名转到新互去续费了。
» 阅读更多: 域名人物:广航传奇

【教程】怎样在DirectNic.com通过站内Push和转移域名

2011年2月18日

站内Push:

第一步:要求域名接受者拥有一个DirectNic.com账号。地址:http://www.directnic.com

第二步:域名持有者在域名详情界面点击按钮【Change Ownership】,输入域名接受者的账号,发起站内Push。DirectNic.com将发送一封包含一个验证码的邮件给域名接受者。

第三步:域名接受者把验证码发给域名持有者;域名持有者再次进入Push界面,填入验证码,域名即迅速到达域名接受者的账户。

站内Push一般在10分钟内完成。

域名转移:

第一步:获得转移码:如果想转移注册商,域名持有者在域名详情界面Auth Code右侧点击按钮【View】,会弹出窗口显示域名转移码。域名持有者把转移码发给域名接受者。

第二步:域名接受者在任何一家域名注册商使用域名和转移码提交一个转移订单。

第三步:域名注册商会向域名持有者的电子邮箱发送验证邮件。域名持有者点击验证邮件中的验证链接进行确认。即开始转移流程。

域名转移一般需要5~6天后完成。

PHP读写文本文件的相关代码

2011年2月18日
=============PHP写入文本==================
<?
$output=”要写入的文本内容”;
$fp=fopen(“file.txt”,”w”);
fwrite($fp,$output);
fclose($fp);
?>
=========================================
=============PHP读出文本==================
<?
$fp = fopen(“file.txt”,”r”);
$buf = fread($fp,filesize(“file.txt”));
fclose($fp);
$buf2 = file_get_contents(“file.txt”);
?><?= $buf2;?>
=========================================