Определенные атрибуты для полей субъекта и эмитента в сертификате определяются в МСЭ X.520 .
Не определен пункт «необязательное название компании».
Я думаю, что вы имеете в виду тип атрибута «Название организации». Это определяется именем LDAP «O».
В вашем примере:
"/ C = GB / ST = Лондон / L = Лондон / O = XYZ / OU = XYZ UK / CN = $ domain / emailAddress = some @ some. com / challengePassword = strongpass / optionCompanyName = PROBLEM "
blockquote>Это" / O = XYZ ", поэтому" Организация "(или название компании) -" XYZ ".
Обновление:
После прочтения я вижу, откуда вы, потому что я никогда не сталкивался с этим:
"Необязательное название компании: "is" unstructuredName ".
«unstructuredName» и «challengePassword» является частью только запроса сертификата. Так что это НЕ часть предмета. Поэтому вы не должны использовать «/ challengePassword = strongpass» в строке темы.
Вы можете увидеть это в файле openssl.conf по умолчанию:
[ req ] attributes = req_attributes [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name
Атрибуты Req игнорируются большинством CA. См. Примечание в документации OpenSSL :
атрибутов
, здесь указывается раздел, содержащий любые атрибуты запроса: его формат такой же, как имя_различенного , Обычно они могут содержать типы challengePassword или unstructuredName. В настоящее время они игнорируются утилитами подписывания запросов OpenSSL, но некоторые центры сертификации могут их захотеть.
blockquote>В настоящее время openssl не предоставляет никакого способа установить req attrbutes из командной строки. Таким образом, единственный способ сделать это с помощью настраиваемого файла conf с установленными атрибутами.
Если вам нужно сделать это, я бы создал файл conf с приглашением, установленным на «no», и использовал параметр -conf openssl. Обратите внимание, что формат немного меняется, когда вы устанавливаете подсказку на «нет».
Так как атрибуты req скорее всего игнорируются, я бы не стал их задавать.
a = ["xyz"].split("").join(" ")
или
a = ["x","y","z"].join(" ")
или
a = %w(x y z).join(" ")
Можно включать пробелы выходом обратной косой черты их (затем добавление дополнительного пространства как разделитель).
a = %w{x\ y\ z\ }
Это может стать твердым читать все же. Если Вы хотите поместить явные кавычки там, Вам не нужно %w{}
, просто используйте нормальный разграниченный запятой массив с []
.
Не использовать %w
для этого - это - ярлык для того, когда Вы хотите разделить массив от слов. Иначе используйте стандартную нотацию массива:
a = ["x ", "y ", "z "]
def explain
puts "double quote equivalents"
p "a b c", %Q{a b c}, %Q(a b c), %(a b c), %<a b c>, %!a b c! # & etc
puts
puts "single quote equivalents"
p 'a b c', %q{a b c}, %q(a b c), %q<a b c>, %q!a b c! # & etc.
puts
puts "single-quote whitespace split equivalents"
p %w{a b c}, 'a b c'.split, 'a b c'.split(" ")
puts
puts "double-quote whitespace split equivalents"
p %W{a b c}, "a b c".split, "a b c".split(" ")
puts
end
explain
def extra_credit
puts "Extra Credit"
puts
test_class = Class.new do
def inspect() 'inspect was called' end
def to_s() 'to_s was called' end
end
puts "print"
print test_class.new
puts "(print calls to_s and doesn't add a newline)"
puts
puts "puts"
puts test_class.new
puts "(puts calls to_s and adds a newline)"
puts
puts "p"
p test_class.new
puts "(p calls inspect and adds a newline)"
puts
end
extra_credit