r509-ocsp-responder 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +112 -17
- data/doc/R509.html +6 -6
- data/doc/R509/Ocsp.html +10 -10
- data/doc/R509/Ocsp/Helper.html +9 -9
- data/doc/R509/Ocsp/Helper/RequestChecker.html +73 -73
- data/doc/R509/Ocsp/Helper/ResponseSigner.html +59 -59
- data/doc/R509/Ocsp/Responder.html +10 -10
- data/doc/R509/Ocsp/Responder/OcspConfig.html +31 -31
- data/doc/R509/Ocsp/Responder/Server.html +9 -9
- data/doc/R509/Ocsp/Responder/StatusError.html +9 -9
- data/doc/R509/Ocsp/Signer.html +36 -44
- data/doc/_index.html +23 -23
- data/doc/class_list.html +2 -2
- data/doc/css/style.css +10 -0
- data/doc/file.README.html +120 -28
- data/doc/file_list.html +1 -1
- data/doc/frames.html +1 -1
- data/doc/index.html +120 -28
- data/doc/js/full_list.js +6 -1
- data/doc/method_list.html +28 -56
- data/doc/top-level-namespace.html +5 -5
- data/lib/r509/ocsp/responder/ocsp-config.rb +27 -27
- data/lib/r509/ocsp/responder/server.rb +129 -131
- data/lib/r509/ocsp/responder/version.rb +4 -4
- data/lib/r509/ocsp/signer.rb +219 -219
- data/spec/fixtures.rb +145 -190
- data/spec/fixtures/test_ca_ec.cer +14 -0
- data/spec/fixtures/test_ca_ec.key +6 -0
- data/spec/server_spec.rb +405 -397
- data/spec/signer_spec.rb +262 -249
- data/spec/spec_helper.rb +2 -2
- metadata +10 -8
data/doc/file_list.html
CHANGED
data/doc/frames.html
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
5
|
<head>
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
|
-
<title>Documentation by YARD 0.8.
|
7
|
+
<title>Documentation by YARD 0.8.6.1</title>
|
8
8
|
</head>
|
9
9
|
<script type="text/javascript" charset="utf-8">
|
10
10
|
window.onload = function() {
|
data/doc/index.html
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
3
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
4
|
<head>
|
5
|
-
<meta http-equiv="Content-Type" content="text/html; charset=
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII" />
|
6
6
|
<title>
|
7
7
|
File: README
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.
|
9
|
+
— Documentation by YARD 0.8.6.1
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
13
|
-
<link rel="stylesheet" href="css/style.css" type="text/css"
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
14
|
|
15
|
-
<link rel="stylesheet" href="css/common.css" type="text/css"
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
16
|
|
17
17
|
<script type="text/javascript" charset="utf-8">
|
18
18
|
hasFrames = window.top.frames.main ? true : false;
|
@@ -67,19 +67,113 @@
|
|
67
67
|
|
68
68
|
<h2>Requirements</h2>
|
69
69
|
|
70
|
-
<p>r509-ocsp-responder depends on <a href="https://github.com/reaperhulk/r509">r509</a>, <a href="http://redis.io">redis</a>, <a href="https://github.com/sirsean/r509-validity-redis">r509-validity-redis</a> (or another library that implements R509::Validity), <a href="http://sinatrarb.com">sinatra</a>, <a href="https://github.com/sirsean/
|
70
|
+
<p>r509-ocsp-responder depends on <a href="https://github.com/reaperhulk/r509">r509</a>, <a href="http://redis.io">redis</a>, <a href="https://github.com/sirsean/r509-validity-redis">r509-validity-redis</a> (or another library that implements R509::Validity), <a href="http://sinatrarb.com">sinatra</a>, and <a href="https://github.com/sirsean/dependo">dependo</a>. Optionally, you can install <a href="https://github.com/sirsean/r509-ocsp-stats">r509-ocsp-stats</a> for stats collection. These must be installed as gems.</p>
|
71
71
|
|
72
72
|
<h2>Basic Usage</h2>
|
73
73
|
|
74
|
-
<
|
75
|
-
<li>Build the gem. If you have cloned the repo you can build the gem with <code>rake gem:build</code>. You will need</li>
|
76
|
-
<li>Install the gem. <code>rake gem:install</code></li>
|
77
|
-
<li>Set up your config.ru and config.yaml. At this time you'll need to copy the config.ru from the gem install to another dir with your config.yaml. You should also copy (and modify) the config.yaml.example file from the gem. You'll need to alter the config.ru's require line from <code>require './lib/r509/ocsp/responder/server'</code> to <code>require 'r509/ocsp/responder/server'</code> if you have it installed as a gem.</li>
|
78
|
-
</ol>
|
74
|
+
<h3>Build/Install</h3>
|
79
75
|
|
80
|
-
<p>
|
76
|
+
<p>If you have cloned the repo you can build the gem with <code>rake gem:build</code> and install with <code>rake gem:install</code> . Alternately you can use a prebuilt gem by typing <code>gem install r509-ocsp-responder</code> .</p>
|
81
77
|
|
82
|
-
<
|
78
|
+
<h3>Set Up config.ru</h3>
|
79
|
+
|
80
|
+
<p>Save the below into a config.ru (or rackup) file</p>
|
81
|
+
|
82
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>r509</span><span class='tstring_end'>"</span></span>
|
83
|
+
<span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>dependo</span><span class='tstring_end'>"</span></span>
|
84
|
+
<span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>r509/ocsp/responder/server</span><span class='tstring_end'>'</span></span>
|
85
|
+
|
86
|
+
<span class='const'>Dependo</span><span class='op'>::</span><span class='const'>Registry</span><span class='lbracket'>[</span><span class='symbol'>:log</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>STDOUT</span><span class='rparen'>)</span>
|
87
|
+
|
88
|
+
<span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>r509/validity/redis</span><span class='tstring_end'>"</span></span>
|
89
|
+
<span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>redis</span><span class='tstring_end'>'</span></span>
|
90
|
+
<span class='kw'>begin</span>
|
91
|
+
<span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>hiredis</span><span class='tstring_end'>"</span></span>
|
92
|
+
<span class='const'>Dependo</span><span class='op'>::</span><span class='const'>Registry</span><span class='lbracket'>[</span><span class='symbol'>:log</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Loading redis with hiredis driver</span><span class='tstring_end'>"</span></span>
|
93
|
+
<span class='id identifier rubyid_redis'>redis</span> <span class='op'>=</span> <span class='const'>Redis</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:driver</span> <span class='op'>=></span> <span class='symbol'>:hiredis</span><span class='rparen'>)</span>
|
94
|
+
<span class='kw'>rescue</span> <span class='const'>Gem</span><span class='op'>::</span><span class='const'>LoadError</span>
|
95
|
+
<span class='const'>Dependo</span><span class='op'>::</span><span class='const'>Registry</span><span class='lbracket'>[</span><span class='symbol'>:log</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Loading redis with standard ruby driver</span><span class='tstring_end'>"</span></span>
|
96
|
+
<span class='id identifier rubyid_redis'>redis</span> <span class='op'>=</span> <span class='const'>Redis</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
97
|
+
<span class='kw'>end</span>
|
98
|
+
<span class='const'>Dependo</span><span class='op'>::</span><span class='const'>Registry</span><span class='lbracket'>[</span><span class='symbol'>:validity_checker</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>Redis</span><span class='op'>::</span><span class='const'>Checker</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_redis'>redis</span><span class='rparen'>)</span>
|
99
|
+
|
100
|
+
|
101
|
+
<span class='const'>R509</span><span class='op'>::</span><span class='const'>OCSP</span><span class='op'>::</span><span class='const'>Responder</span><span class='op'>::</span><span class='const'>OCSPConfig</span><span class='period'>.</span><span class='id identifier rubyid_load_config'>load_config</span>
|
102
|
+
|
103
|
+
<span class='const'>R509</span><span class='op'>::</span><span class='const'>OCSP</span><span class='op'>::</span><span class='const'>Responder</span><span class='op'>::</span><span class='const'>OCSPConfig</span><span class='period'>.</span><span class='id identifier rubyid_print_config'>print_config</span>
|
104
|
+
|
105
|
+
<span class='comment'># Uncomment the next two lines if you want to collect stats via r509-ocsp-stats
|
106
|
+
</span><span class='comment'># require "r509/ocsp/stats/redis"
|
107
|
+
</span><span class='comment'># Dependo::Registry[:stats] = R509::OCSP::Stats::Redis.new
|
108
|
+
</span>
|
109
|
+
<span class='id identifier rubyid_responder'>responder</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>OCSP</span><span class='op'>::</span><span class='const'>Responder</span><span class='op'>::</span><span class='const'>Server</span>
|
110
|
+
<span class='id identifier rubyid_run'>run</span> <span class='id identifier rubyid_responder'>responder</span>
|
111
|
+
</code></pre>
|
112
|
+
|
113
|
+
<h3>Configure config.yaml</h3>
|
114
|
+
|
115
|
+
<p>The config.yaml contains certificate authority nodes as well as options like copy_nonce (documented below). Each CA node has an arbitrary name like test_ca and contains a ca_cert and (optional) ocsp_cert node. If you want to sign OCSP responses directly from your root you'll set your config up like this:</p>
|
116
|
+
|
117
|
+
<pre class="code yaml"><code class="yaml">copy_nonce: true
|
118
|
+
cache_headers: true
|
119
|
+
max_cache_age: 60
|
120
|
+
certificate_authorities: {
|
121
|
+
second_ca: {
|
122
|
+
ca_cert: {
|
123
|
+
cert: "spec/fixtures/second_ca.cer",
|
124
|
+
key: "spec/fixtures/second_ca.key"
|
125
|
+
}
|
126
|
+
}
|
127
|
+
}
|
128
|
+
</code></pre>
|
129
|
+
|
130
|
+
<p>If you want to use an OCSP delegate</p>
|
131
|
+
|
132
|
+
<pre class="code yaml"><code class="yaml">copy_nonce: true
|
133
|
+
cache_headers: true
|
134
|
+
max_cache_age: 60
|
135
|
+
certificate_authorities: {
|
136
|
+
test_ca: {
|
137
|
+
ca_cert: {
|
138
|
+
cert: "spec/fixtures/test_ca.cer"
|
139
|
+
},
|
140
|
+
ocsp_cert: {
|
141
|
+
cert: "spec/fixtures/test_ca_ocsp.cer",
|
142
|
+
key: "spec/fixtures/test_ca_ocsp.key"
|
143
|
+
}
|
144
|
+
}
|
145
|
+
}
|
146
|
+
</code></pre>
|
147
|
+
|
148
|
+
<p>Finally, if you're responding for multiple roots you specify them like so:</p>
|
149
|
+
|
150
|
+
<pre class="code yaml"><code class="yaml">copy_nonce: true
|
151
|
+
cache_headers: true
|
152
|
+
max_cache_age: 60
|
153
|
+
certificate_authorities: {
|
154
|
+
test_ca: {
|
155
|
+
ca_cert: {
|
156
|
+
cert: "spec/fixtures/test_ca.cer"
|
157
|
+
},
|
158
|
+
ocsp_cert: {
|
159
|
+
cert: "spec/fixtures/test_ca_ocsp.cer",
|
160
|
+
key: "spec/fixtures/test_ca_ocsp.key"
|
161
|
+
}
|
162
|
+
},
|
163
|
+
second_ca: {
|
164
|
+
ca_cert: {
|
165
|
+
cert: "spec/fixtures/second_ca.cer",
|
166
|
+
key: "spec/fixtures/second_ca.key"
|
167
|
+
}
|
168
|
+
}
|
169
|
+
}
|
170
|
+
</code></pre>
|
171
|
+
|
172
|
+
<h3>Configure Thin & nginx</h3>
|
173
|
+
|
174
|
+
<p>The example below is an example yaml config for thin. You will want to have as many servers as you have cores.</p>
|
175
|
+
|
176
|
+
<pre class="code yaml"><code class="yaml">chdir: /var/www/r509-ocsp-responder
|
83
177
|
rackup: /var/www/r509-ocsp-responder/config.ru
|
84
178
|
socket: /var/run/r509-ocsp-responder.sock
|
85
179
|
pid: /var/run/r509-ocsp-responder.pid
|
@@ -90,28 +184,28 @@ log: /var/log/r509-ocsp-responder.log
|
|
90
184
|
|
91
185
|
<p>Since this config is just using sockets let's set up nginx as a reverse proxy for the thin instances. We can also use this as a caching layer if we choose to enable cache_headers.</p>
|
92
186
|
|
93
|
-
<pre class="code ruby"><code>proxy_cache_path /var/www/cache levels=1:2 keys_zone=ocsp:8m max_size=16m inactive=64m;
|
187
|
+
<pre class="code ruby"><code class="ruby">proxy_cache_path /var/www/cache levels=1:2 keys_zone=ocsp:8m max_size=16m inactive=64m;
|
94
188
|
proxy_temp_path /var/www/cache/tmp;
|
95
189
|
|
96
190
|
upstream thin_ocsp_responder{
|
97
|
-
|
98
|
-
|
191
|
+
server unix:/var/run/r509-ocsp-responder.0.sock fail_timeout=0;
|
192
|
+
server unix:/var/run/r509-ocsp-responder.1.sock fail_timeout=0;
|
99
193
|
}
|
100
194
|
server {
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
195
|
+
listen 80;
|
196
|
+
server_name ocsp.r509.org;
|
197
|
+
|
198
|
+
location / {
|
199
|
+
proxy_pass http://thin_ocsp_responder;
|
200
|
+
proxy_cache ocsp;
|
201
|
+
proxy_cache_use_stale updating;
|
202
|
+
}
|
109
203
|
}
|
110
204
|
</code></pre>
|
111
205
|
|
112
206
|
<p>Within the location block you may also choose to add these directives:</p>
|
113
207
|
|
114
|
-
<pre class="code ruby"><code>proxy_cache_methods GET POST;
|
208
|
+
<pre class="code ruby"><code class="ruby">proxy_cache_methods GET POST;
|
115
209
|
proxy_cache_valid 200 302 1m;
|
116
210
|
</code></pre>
|
117
211
|
|
@@ -129,8 +223,6 @@ proxy_cache_valid 200 302 1m;
|
|
129
223
|
<li><p><strong>max_cache_age</strong> - (integer) Sets the maximum age in <strong>seconds</strong> a response can be cached. At this time r509-ocsp-responder does not support cache invalidation so it is recommended to set this to a low value to reduce the time you may serve stale responses in the event of a revocation.</p></li>
|
130
224
|
</ul>
|
131
225
|
|
132
|
-
<p>See the config.yaml.example for an example configuration.</p>
|
133
|
-
|
134
226
|
<h2>Signals</h2>
|
135
227
|
|
136
228
|
<p>You can send a kill -USR2 signal to any running r509-ocsp-responder process to cause it to reload and print its config to the logs (provided your app server isn't trapping USR2 first).</p>
|
@@ -147,9 +239,9 @@ proxy_cache_valid 200 302 1m;
|
|
147
239
|
</div></div>
|
148
240
|
|
149
241
|
<div id="footer">
|
150
|
-
Generated on
|
242
|
+
Generated on Tue Apr 16 13:57:16 2013 by
|
151
243
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
152
|
-
0.8.
|
244
|
+
0.8.6.1 (ruby-1.9.3).
|
153
245
|
</div>
|
154
246
|
|
155
247
|
</body>
|
data/doc/js/full_list.js
CHANGED
@@ -17,6 +17,7 @@ function fullListSearch() {
|
|
17
17
|
searchCache = [];
|
18
18
|
$('#full_list li').each(function() {
|
19
19
|
var link = $(this).find('.object_link a');
|
20
|
+
if (link.length === 0) return;
|
20
21
|
var fullName = link.attr('title').split(' ')[0];
|
21
22
|
searchCache.push({name:link.text(), fullName:fullName, node:$(this), link:link});
|
22
23
|
});
|
@@ -41,7 +42,7 @@ function fullListSearch() {
|
|
41
42
|
$('#full_list li').removeClass('found').each(function() {
|
42
43
|
|
43
44
|
var link = $(this).find('.object_link a');
|
44
|
-
link.text(link.text());
|
45
|
+
if (link.length > 0) link.text(link.text());
|
45
46
|
});
|
46
47
|
if (clicked) {
|
47
48
|
clicked.parents('ul').each(function() {
|
@@ -110,6 +111,10 @@ clicked = null;
|
|
110
111
|
function linkList() {
|
111
112
|
$('#full_list li, #full_list li a:last').click(function(evt) {
|
112
113
|
if ($(this).hasClass('toggle')) return true;
|
114
|
+
if ($(this).find('.object_link a').length === 0) {
|
115
|
+
$(this).children('a.toggle').click();
|
116
|
+
return false;
|
117
|
+
}
|
113
118
|
if (this.tagName.toLowerCase() == "li") {
|
114
119
|
var toggle = $(this).children('a.toggle');
|
115
120
|
if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
|
data/doc/method_list.html
CHANGED
@@ -47,114 +47,86 @@
|
|
47
47
|
|
48
48
|
|
49
49
|
<li class="r1 ">
|
50
|
-
<span class='object_link'><a href="R509/
|
51
|
-
|
52
|
-
<small>R509::Ocsp::Helper::RequestChecker</small>
|
53
|
-
|
50
|
+
<span class='object_link'><a href="R509/OCSP/Helper/RequestChecker.html#check_statuses-instance_method" title="R509::OCSP::Helper::RequestChecker#check_statuses (method)">#check_statuses</a></span>
|
51
|
+
<small>R509::OCSP::Helper::RequestChecker</small>
|
54
52
|
</li>
|
55
53
|
|
56
54
|
|
57
55
|
<li class="r2 ">
|
58
|
-
<span class='object_link'><a href="R509/
|
59
|
-
|
60
|
-
<small>R509::Ocsp::Helper::RequestChecker</small>
|
61
|
-
|
56
|
+
<span class='object_link'><a href="R509/OCSP/Helper/RequestChecker.html#configs-instance_method" title="R509::OCSP::Helper::RequestChecker#configs (method)">#configs</a></span>
|
57
|
+
<small>R509::OCSP::Helper::RequestChecker</small>
|
62
58
|
</li>
|
63
59
|
|
64
60
|
|
65
61
|
<li class="r1 ">
|
66
|
-
<span class='object_link'><a href="R509/
|
67
|
-
|
68
|
-
<small>R509::Ocsp::Helper::RequestChecker</small>
|
69
|
-
|
62
|
+
<span class='object_link'><a href="R509/OCSP/Helper/RequestChecker.html#configs_hash-instance_method" title="R509::OCSP::Helper::RequestChecker#configs_hash (method)">#configs_hash</a></span>
|
63
|
+
<small>R509::OCSP::Helper::RequestChecker</small>
|
70
64
|
</li>
|
71
65
|
|
72
66
|
|
73
67
|
<li class="r2 ">
|
74
|
-
<span class='object_link'><a href="R509/
|
75
|
-
|
76
|
-
<small>R509::Ocsp::Helper::ResponseSigner</small>
|
77
|
-
|
68
|
+
<span class='object_link'><a href="R509/OCSP/Helper/ResponseSigner.html#create_basic_response-instance_method" title="R509::OCSP::Helper::ResponseSigner#create_basic_response (method)">#create_basic_response</a></span>
|
69
|
+
<small>R509::OCSP::Helper::ResponseSigner</small>
|
78
70
|
</li>
|
79
71
|
|
80
72
|
|
81
73
|
<li class="r1 ">
|
82
|
-
<span class='object_link'><a href="R509/
|
83
|
-
|
84
|
-
<small>R509::Ocsp::Helper::ResponseSigner</small>
|
85
|
-
|
74
|
+
<span class='object_link'><a href="R509/OCSP/Helper/ResponseSigner.html#create_response-instance_method" title="R509::OCSP::Helper::ResponseSigner#create_response (method)">#create_response</a></span>
|
75
|
+
<small>R509::OCSP::Helper::ResponseSigner</small>
|
86
76
|
</li>
|
87
77
|
|
88
78
|
|
89
79
|
<li class="r2 ">
|
90
|
-
<span class='object_link'><a href="R509/
|
91
|
-
|
92
|
-
<small>R509::Ocsp::Signer</small>
|
93
|
-
|
80
|
+
<span class='object_link'><a href="R509/OCSP/Signer.html#handle_request-instance_method" title="R509::OCSP::Signer#handle_request (method)">#handle_request</a></span>
|
81
|
+
<small>R509::OCSP::Signer</small>
|
94
82
|
</li>
|
95
83
|
|
96
84
|
|
97
85
|
<li class="r1 ">
|
98
|
-
<span class='object_link'><a href="R509/
|
99
|
-
|
100
|
-
<small>R509::Ocsp::Helper::ResponseSigner</small>
|
101
|
-
|
86
|
+
<span class='object_link'><a href="R509/OCSP/Helper/ResponseSigner.html#initialize-instance_method" title="R509::OCSP::Helper::ResponseSigner#initialize (method)">#initialize</a></span>
|
87
|
+
<small>R509::OCSP::Helper::ResponseSigner</small>
|
102
88
|
</li>
|
103
89
|
|
104
90
|
|
105
91
|
<li class="r2 ">
|
106
|
-
<span class='object_link'><a href="R509/
|
107
|
-
|
108
|
-
<small>R509::Ocsp::Signer</small>
|
109
|
-
|
92
|
+
<span class='object_link'><a href="R509/OCSP/Signer.html#initialize-instance_method" title="R509::OCSP::Signer#initialize (method)">#initialize</a></span>
|
93
|
+
<small>R509::OCSP::Signer</small>
|
110
94
|
</li>
|
111
95
|
|
112
96
|
|
113
97
|
<li class="r1 ">
|
114
|
-
<span class='object_link'><a href="R509/
|
115
|
-
|
116
|
-
<small>R509::Ocsp::Helper::RequestChecker</small>
|
117
|
-
|
98
|
+
<span class='object_link'><a href="R509/OCSP/Helper/RequestChecker.html#initialize-instance_method" title="R509::OCSP::Helper::RequestChecker#initialize (method)">#initialize</a></span>
|
99
|
+
<small>R509::OCSP::Helper::RequestChecker</small>
|
118
100
|
</li>
|
119
101
|
|
120
102
|
|
121
103
|
<li class="r2 ">
|
122
|
-
<span class='object_link'><a href="R509/
|
123
|
-
|
124
|
-
<small>R509::Ocsp::Responder::OcspConfig</small>
|
125
|
-
|
104
|
+
<span class='object_link'><a href="R509/OCSP/Responder/OCSPConfig.html#load_config-class_method" title="R509::OCSP::Responder::OCSPConfig.load_config (method)">load_config</a></span>
|
105
|
+
<small>R509::OCSP::Responder::OCSPConfig</small>
|
126
106
|
</li>
|
127
107
|
|
128
108
|
|
129
109
|
<li class="r1 ">
|
130
|
-
<span class='object_link'><a href="R509/
|
131
|
-
|
132
|
-
<small>R509::Ocsp::Responder::OcspConfig</small>
|
133
|
-
|
110
|
+
<span class='object_link'><a href="R509/OCSP/Responder/OCSPConfig.html#print_config-class_method" title="R509::OCSP::Responder::OCSPConfig.print_config (method)">print_config</a></span>
|
111
|
+
<small>R509::OCSP::Responder::OCSPConfig</small>
|
134
112
|
</li>
|
135
113
|
|
136
114
|
|
137
115
|
<li class="r2 ">
|
138
|
-
<span class='object_link'><a href="R509/
|
139
|
-
|
140
|
-
<small>R509::Ocsp::Signer</small>
|
141
|
-
|
116
|
+
<span class='object_link'><a href="R509/OCSP/Signer.html#request_checker-instance_method" title="R509::OCSP::Signer#request_checker (method)">#request_checker</a></span>
|
117
|
+
<small>R509::OCSP::Signer</small>
|
142
118
|
</li>
|
143
119
|
|
144
120
|
|
145
121
|
<li class="r1 ">
|
146
|
-
<span class='object_link'><a href="R509/
|
147
|
-
|
148
|
-
<small>R509::Ocsp::Helper::RequestChecker</small>
|
149
|
-
|
122
|
+
<span class='object_link'><a href="R509/OCSP/Helper/RequestChecker.html#validate_statuses-instance_method" title="R509::OCSP::Helper::RequestChecker#validate_statuses (method)">#validate_statuses</a></span>
|
123
|
+
<small>R509::OCSP::Helper::RequestChecker</small>
|
150
124
|
</li>
|
151
125
|
|
152
126
|
|
153
127
|
<li class="r2 ">
|
154
|
-
<span class='object_link'><a href="R509/
|
155
|
-
|
156
|
-
<small>R509::Ocsp::Signer</small>
|
157
|
-
|
128
|
+
<span class='object_link'><a href="R509/OCSP/Signer.html#validity_checker-instance_method" title="R509::OCSP::Signer#validity_checker (method)">#validity_checker</a></span>
|
129
|
+
<small>R509::OCSP::Signer</small>
|
158
130
|
</li>
|
159
131
|
|
160
132
|
|
@@ -6,13 +6,13 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.
|
9
|
+
— Documentation by YARD 0.8.6.1
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
13
|
-
<link rel="stylesheet" href="css/style.css" type="text/css"
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
14
|
|
15
|
-
<link rel="stylesheet" href="css/common.css" type="text/css"
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
16
|
|
17
17
|
<script type="text/javascript" charset="utf-8">
|
18
18
|
hasFrames = window.top.frames.main ? true : false;
|
@@ -103,9 +103,9 @@
|
|
103
103
|
</div>
|
104
104
|
|
105
105
|
<div id="footer">
|
106
|
-
Generated on
|
106
|
+
Generated on Tue Apr 16 13:57:16 2013 by
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
108
|
-
0.8.
|
108
|
+
0.8.6.1 (ruby-1.9.3).
|
109
109
|
</div>
|
110
110
|
|
111
111
|
</body>
|
@@ -1,35 +1,35 @@
|
|
1
|
-
module R509::
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
module R509::OCSP::Responder
|
2
|
+
class OCSPConfig
|
3
|
+
def self.load_config
|
4
|
+
config_data = File.read("config.yaml")
|
5
5
|
|
6
|
-
|
6
|
+
Dependo::Registry[:config_pool] = R509::Config::CAConfigPool.from_yaml("certificate_authorities", config_data)
|
7
7
|
|
8
|
-
|
8
|
+
Dependo::Registry[:copy_nonce] = YAML.load(config_data)["copy_nonce"] || false
|
9
9
|
|
10
|
-
|
10
|
+
Dependo::Registry[:cache_headers] = YAML.load(config_data)["cache_headers"] || false
|
11
11
|
|
12
|
-
|
12
|
+
Dependo::Registry[:max_cache_age] = YAML.load(config_data)["max_cache_age"]
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
Dependo::Registry[:ocsp_signer] = R509::OCSP::Signer.new(
|
15
|
+
:configs => Dependo::Registry[:config_pool],
|
16
|
+
:validity_checker => Dependo::Registry[:validity_checker],
|
17
|
+
:copy_nonce => Dependo::Registry[:copy_nonce]
|
18
|
+
)
|
19
|
+
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
end
|
21
|
+
def self.print_config
|
22
|
+
Dependo::Registry[:log].warn "Config loaded"
|
23
|
+
Dependo::Registry[:log].warn "Copy Nonce: "+Dependo::Registry[:copy_nonce].to_s
|
24
|
+
Dependo::Registry[:log].warn "Cache Headers: "+Dependo::Registry[:cache_headers].to_s
|
25
|
+
Dependo::Registry[:log].warn "Max Cache Age: "+Dependo::Registry[:max_cache_age].to_s
|
26
|
+
Dependo::Registry[:config_pool].all.each do |config|
|
27
|
+
Dependo::Registry[:log].warn "Config: "
|
28
|
+
Dependo::Registry[:log].warn "CA Cert:"+config.ca_cert.subject.to_s
|
29
|
+
Dependo::Registry[:log].warn "OCSP Cert (may be the same as above):"+config.ocsp_cert.subject.to_s
|
30
|
+
Dependo::Registry[:log].warn "OCSP Validity Hours: "+config.ocsp_validity_hours.to_s
|
31
|
+
Dependo::Registry[:log].warn "\n"
|
32
|
+
end
|
34
33
|
end
|
34
|
+
end
|
35
35
|
end
|