Class: Roebe::InstallOpensslCertificates
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/install_openssl_certificates.rb
Overview
Roebe::InstallOpensslCertificates
Constant Summary
collapse
- REMOTE_LFS_WEBPAGE =
'http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cacerts.html'
- REMOTE_FILE_ROOT_CRT =
'http://www.cacert.org/certs/root.crt'
- URL_TO_THE_REMOTE_SHELL_SCRIPT =
#
URL_TO_THE_REMOTE_SHELL_SCRIPT
#
'https://github.com/djlucas/make-ca/releases/download/v1.7/make-ca-1.7.tar.xz'
- MAIN_PEM_FILE =
'/etc/ssl/local/CAcert_Class_1_root.pem'
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === Roebe::InstallOpensslCertificates[] ========================================================================= #.
Instance Method Summary
collapse
Methods inherited from Base
#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow
#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments
Constructor Details
54
55
56
57
58
59
60
61
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 54
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
#
Roebe::InstallOpensslCertificates[]
#
221
222
223
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 221
def self.[](i = '')
new(i)
end
|
Instance Method Details
#download(from_this_url = url_to_the_remote_shell_script?,
, local_path = nil) ⇒ Object
#
download
Use this method to download a remote file.
Do note that this may file, since openssl may be unavailable on the given host system. This is why this method will also try to handle these situations via “wget” and the associated flag “wget –no-check-certificate”.
#
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 184
def download(
from_this_url = url_to_the_remote_shell_script?,
local_path = nil
)
if local_path.nil?
local_path = File.basename(from_this_url)
end
if File.exist? local_path
delete(local_path)
end
begin
File.open(local_path, 'w') { |file|
IO.copy_stream(URI.open(from_this_url), file)
}
rescue OpenSSL::SSL::SSLError
e 'An '+steelblue('OpenSSL::SSL::SSLError')+' error has occurred.'
e 'Thus, we will use wget instead.'
command_to_use = "wget --no-check-certificate #{from_this_url}"
e command_to_use
`#{command_to_use}`
end
return File.absolute_path(local_path) end
|
98
99
100
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 98
def input?
@input
end
|
#remote_url? ⇒ Boolean
82
83
84
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 82
def remote_url?
REMOTE_LFS_WEBPAGE
end
|
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 66
def reset
super()
infer_the_namespace
@shall_we_download_the_remote_shell_script = true
end
|
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 112
def run
opne 'We will now install the openssl certificates.'
opne 'If you wish to read up on the rationale, you can look '\
'at this page:'
e
e ' '+sfancy(remote_url?)
e
_ = File.basename(remote_url?)
if @shall_we_download_the_remote_shell_script
opne 'Alright - first, we will download the remote shell scripts from'
e
e sfancy(url_to_the_remote_shell_script?)
e
@local_path_to_the_shell_script = download(url_to_the_remote_shell_script?)
_ = @local_path_to_the_shell_script
end
if File.exist? _
opne 'The local file exists at `'+sfile(_)+'`.'
mkdir('/etc/ssl/local/') unless File.directory? '/etc/ssl/local/'
opne 'Next downloading the remote file `'+sfancy(REMOTE_FILE_ROOT_CRT)+'`.'
local_root_crt_file = download(REMOTE_FILE_ROOT_CRT)
if File.exist? local_root_crt_file
opne 'The download appears to have worked - '+
sfile(local_root_crt_file)+' is available locally.'
run_openssl_x609_sys_command
opne 'Next, we will make use of the binary called "openssl", and '\
'store into the file `'+sfile(MAIN_PEM_FILE)+'`.'
new_path = '/usr/sbin/'+File.basename(@local_path_to_the_shell_script)
opnn; mv(
@local_path_to_the_shell_script,
new_path,
:be_verbose
)
opne 'Next downloading a new certdata.txt file.'
download 'https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt'
esystem 'install -vm755 '+@local_path_to_the_shell_script+' /usr/sbin/make-ca.sh'
shell_script_path = '/usr/sbin/make-ca.sh'
if File.exist? shell_script_path
opne "Next, we will invoke #{sfile(shell_script_path)}."
esystem shell_script_path
else
opne 'No file exists at '+sfile(shell_script_path)+'.'
end
end
else
opne 'The local file does '+swarn('NOT')+' exist at `'+sfile(_)+'`.'
end
end
|
#run_openssl_x609_sys_command ⇒ Object
#
run_openssl_x609_sys_command
#
211
212
213
214
215
216
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 211
def run_openssl_x609_sys_command
_ = 'openssl x509 -in root.crt -text -fingerprint '\
'-setalias "CAcert Class 1 root" -addtrust serverAuth '\
'-addtrust emailProtection -addtrust codeSigning > '+MAIN_PEM_FILE
esystem _
end
|
89
90
91
92
93
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 89
def set_input(i = '')
i = i.first if i.is_a? Array
i = i.to_s.dup
@input = i
end
|
#url_to_the_remote_shell_script? ⇒ Boolean
#
url_to_the_remote_shell_script?
#
105
106
107
|
# File 'lib/roebe/classes/install_openssl_certificates.rb', line 105
def url_to_the_remote_shell_script?
URL_TO_THE_REMOTE_SHELL_SCRIPT
end
|