靜靜的想
隨筆~見啥寫啥~~~
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆 - 2 文章 - 0 trackbacks - 0
<
2007年10月
>
日
一
二
三
四
五
六
30
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
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評論
我的參與
留言簿
(8)
給我留言
查看公開留言
查看私人留言
隨筆分類
java
java crypto
隨筆檔案
2007年10月 (1)
2007年8月 (1)
搜索
最新評論
閱讀排行榜
1.?時間戳服務器 OpenTsa(4051)
2.?開通博客了~~(184)
評論排行榜
1.?時間戳服務器 OpenTsa(0)
2.?開通博客了~~(0)
時間戳服務器 OpenTsa
申請了n久了,可惜沒時間寫,這次正好是接觸了點新東西寫上先。
最近公司要做個用到時間戳的項目,苦于手上沒有現成的資料,只好到網上去找個開源的用著先。
時間戳主要是用在簽名時間的確定上,他能夠保證在某個時刻之前被簽名的數據已經存在,經常用在電子簽名里面。(這些俺自己的理解,如果不對希望大家多多指正,謝了先)。
opentsa 是基于apache的一個模塊,通過http或https 來提供時間戳服務。安裝時需要先準備相應的軟件,至于具體使用的軟件請到
http://www.opentsa.org
上查閱,其中注意版本號。在這里俺使用的是基于openssl0.9.7a和apache1.3.27版本的。
首先請準備幾個軟件
Perl 5 和 libcurl 就不說了,自己安裝吧,一般的linux 都已經安裝了Perl 了。
openssl-VERSION.tar.gz 從
http://www.openssl.org
上下載
ts-VERSION.patch.gz 從
http://www.opentsa.org
上下載
apache-VERSION.tar.gz 從
http://httpd.apache.org
上下載
mod_ssl-VERSION.tar.gz 從
http://www.modssl.org
上下載
mod_tsa-VERSION.tgz 從
http://www.opentsa.org
上下在
如果你需要將時間戳的簽名都保存下來還需要安裝mysql數據庫,俺用的時候沒有安裝,不過下面會按照安裝文檔里所描述的寫一下。
這里使用的是
openssl-0.9.7a、ts-20030222-0_9_7a-patch、Apache 1.3.27、mod_ssl-2.8.12-1.3.27和mod_tsa-20030222
下面是安裝步驟:
安裝之前請先禁用本機上的apache服務,如果本機版本 跟需要版本不同請參考
http://www.opentsa.org
上的文檔及相關軟件的參考文檔。
一、
首先需要安裝OpenSSL和tsget。在這里使用的OpenSSL為0.9.7a版本,在安裝OpenSSL時需要先將ts patch一下, 這兩個軟件安裝的過程為:
注: -VERSION 表示版本號 #號后面是注釋
$ gzip
-
cd openssl
-
VERSION
.
tar
.
gz
|
tar xf
-
$ cd openssl
-
VERSION
$ gzip
-
cd ts
-
VERSION
.
patch
.
gz
|
patch
-
p1
#
下面安裝
$
./
config
#
默認將OpenSSL安裝到/usr/local/ssl下,
#更改默認安裝路徑請使用 --prefix 和 --openssldir指定
#如下:
#$ ./config --prefix=/usr/local --openssldir=/usr/local/openssl
$ make
$ make test
$ make install
#
執行這步可能需要管理員權限
$ cp apps
/
tsget
<
openssl_root
>/
bin
#
或者其他的相應路徑,只要能找到就行
#tsget需要有curl的支持,請自行安裝
安裝完成后測試一下看是不是安裝成功了,測試方法
$cd
<
openssl_root
>/
bin
$
./
openssl ts
如果出現類似如下內容就表示安裝成功了
usage
:
ts
-
query [
-
rand
file;file;
] [
-
config configfile] [
-
data file_to_hash] [
-
dige
st digest_bytes][
-
md2
|-
md4
|-
md5
|-
sha
|-
sha1
|-
mdc2
|-
ripemd160] [
-
policy object_id]
[
-
no_nonce] [
-
cert] [
-
in request
.
tsq] [
-
out request
.
tsq] [
-
text]
or
ts
-
reply [
-
config configfile] [
-
section tsa_section] [
-
queryfile request
.
tsq] [
-
passin password] [
-
signer tsa_cert
.
pem] [
-
inkey private_key
.
pem] [
-
chain certs_
file
.
pem] [
-
policy object_id] [
-
in response
.
tsr] [
-
token_in] [
-
out response
.
tsr]
[
-
token_out] [
-
text]
or
ts
-
verify [
-
data file_to_hash] [
-
digest digest_bytes] [
-
queryfile request
.
tsq]
-
in response
.
tsr [
-
token_in]
-
CApath ca_path
-
CAfile ca_file
.
pem
-
untrusted cert
_file
.
pem
tsget 為perl腳本,自行測試吧。
二、mod_tsa及其相關軟件的安裝
1、如果想把所有的時間戳數據記錄到Mysql數據庫中請先安裝Mysql數據庫。如果你的apache已經安裝并支持DSO(dynamic shared object,不知道中文該怎么說),那么就可以不安裝apache,如果沒有配置https那么請自行配置。
2、解壓要用的到相關軟件,如下:
$ gzip
-
cd apache
-
VERSION
.
tar
.
gz
|
tar xf
-
$ gzip
-
cd mod_ssl
-
VERSION
.
tar
.
gz
|
tar xf
-
$ gzip
-
cd mod_tsa
-
VERSION
.
tgz
|
tar xf
-
3、安裝支持https的apache服務器
$ cd mod_ssl
-
VERSION
$
./
configure
--
with
-
apache
=../
apache
-
VERSION
--
with
-
eapi
-
only
#
上面命令執行完后有個提示,按照提示操作即可,不過需要加點其它的參數
$ cd
../
apache
-
VERSION
$
./
configure
--
enable
-
module
=
so
--
enable
-
rule
=
EAPI
#
如果需要更改apache的路徑請使用 --prefix=<path> 選項
$ make
$ make install
#
這里同樣需要管理員權限
安裝完成了啟動服務:
$
<
apache_root
>/
bin
/
apachectl start
#
啟動apache
可以查看 <apache_root>/logs/error_log 中的信息確定是不是成功啟動了。
到這里就可以使用https服務了,具體配置方法請參見
http://localhost/manual/mod/mod_ssl/
4、安裝mod_tsa。
在安裝之前請先將apache的bin目錄放到PATH變量中,這樣可以執行apache的bin 目錄下的apxs 命令。
$ export PATH
=<
apache_root
>/
bin
:
$PATH
編譯安裝
$ cd
../
mod_tsa
$ make OPENSSL
=<
openssl_root
>
#
如果要使用mysql在命令后面加上 TS_MYSQL=1
$ make install
#
同樣這里也需要管理員權限
如果未使用mysql到這里安裝工作就完成了。
下面的步驟為mod_tsa文檔上的描述,沒有使用過
創建數據庫:
$ mysql
-
h
<
mysql_host
>
<
database
>
-
p
<
mysql_create
.
sql
這里安裝過程就完成了。安裝完成后配置一下就可以使用了。
首先是要配置httpd.conf:
在mod_tsa目錄下有tsa.conf文件,將其拷貝到<apache_root>/conf下。在<apache_root>/conf/httpd.conf 中加入一行
Include conf
/
tsa
.
conf
該行必須在Loadmodule下面。
#
這行是安裝的時候加進來的
#如果沒有,請將mod_tsa.so拷到<apache_root>/libexec 下
# 并加上下面這行
Loadmodule tsa_module libexec
/
mod_tsa
.
so
我習慣查找<Location ...> 節點,把Include加入到</Location>下面。
然后需要配置一下tsa服務器了:
tsa服務器的相關配置信息在tsa.conf 中,不過在配置之前你需要先準備一張時間戳證書及和證書對應的私鑰,及該證書驗證的證書鏈。如果沒有可以使用openssl 生成,具體方法請參考openssl。
打開tsa.conf
<
Location
/
tsa
>
#
/tsa 為訪問路徑,可以更改
#這個節點其他的部分就不要改了
SetHandler tsa
Order allow
,
deny
Allow from all
</
Location
>
#
下面這行是存放時間戳序列的文件,可以使用默認
# TSASerialFile conf/tsaserial
#下面證書 ,證書鏈及私鑰
TSACertificate
/
home
/
zglozik
/
certs
/
tsa
.
pem
TSACertificateChain
/
home
/
zglozik
/
demoCA
/
cacert
.
pem
TSAKey
/
home
/
zglozik
/
certs
/
tsa_key
.
pem
#
再下面這些可以使用默認了
#如果使用mysql 的話需要配置一下最后的幾個參數
#其他詳細的就看人家配置文件的注釋把,英文的,寫的很清楚
#如果有什么不懂的就到http://www.opentsa.org 上看看去
到這時候再重啟apache 就可以使用tsa了。
此時就可以通過 openssl 的ts 命令和 tsget 命令來測試一下,具體請查看
http://www.opentsa.org/#service
。
注意,此時間戳服務器完全遵守 rfc3161 ,與signcode (這個不標準) 不兼容,也就是使用signcode時此時間戳會拒絕。
posted on 2007-10-18 14:15
靜靜的想
閱讀(4051)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Copyright ©2025 靜靜的想 Powered by:
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
哈密市
|
香格里拉县
|
嘉黎县
|
溆浦县
|
宁武县
|
大足县
|
玛沁县
|
金溪县
|
册亨县
|
玉树县
|
渭源县
|
新民市
|
双牌县
|
庆城县
|
华阴市
|
达州市
|
潮安县
|
开封市
|
湘乡市
|
济南市
|
邵武市
|
泾源县
|
渭源县
|
江北区
|
资溪县
|
凤冈县
|
天门市
|
新和县
|
太和县
|
尼木县
|
扎鲁特旗
|
雅安市
|
潼关县
|
乌兰浩特市
|
SHOW
|
海兴县
|
桐庐县
|
通化市
|
仙游县
|
阜宁县
|
枞阳县
|