summaryrefslogtreecommitdiffstats
path: root/openssl-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'openssl-model.lua')
-rw-r--r--openssl-model.lua27
1 files changed, 9 insertions, 18 deletions
diff --git a/openssl-model.lua b/openssl-model.lua
index 5f4debd..e8f9f45 100644
--- a/openssl-model.lua
+++ b/openssl-model.lua
@@ -385,30 +385,21 @@ submitrequest = function(defaults, user)
-- Generate a temp config file for this request
local fileval = fs.read_file(configfile) or ""
config = config or format.parse_ini_file(fileval)
- local temp = format.dostounix(defaults.value.extensions.value)
- local ext_section
- if not config.req or not config.req.req_extensions then
- ext_section = "v3_req"
- while config[ext_section] do ext_section = "v3_req_"..tostring(os.time()) end
- else
- ext_section = config.req.req_extensions
- for name,value in pairs(config[ext_section] or {}) do
- temp = format.update_ini_file(temp, "", name, value)
- end
- end
+ local ext_section = "v3_req"
+ while config[ext_section] do ext_section = "v3_req_"..tostring(os.time()) end
+ local content = format.dostounix(defaults.value.extensions.value)
+ -- Override with the extensions for this cert type
if config[defaults.value.certtype.value].x509_extensions then
- ext_section = config[defaults.value.certtype.value].x509_extensions
- for name,value in pairs(config[ext_section] or {}) do
+ local temp = config[defaults.value.certtype.value].x509_extensions
+ for name,value in pairs(config[temp] or {}) do
if not string.find(value, "issuer") then
- temp = format.update_ini_file(temp, "", name, value)
+ content = format.update_ini_file(content, "", name, value)
end
end
end
- if temp ~= "" then
- fileval = format.set_ini_section(fileval, ext_section, temp)
- fileval = format.update_ini_file(fileval, "req", "req_extensions", ext_section)
- end
+ fileval = format.set_ini_section(fileval, ext_section, content)
+ fileval = format.update_ini_file(fileval, "req", "req_extensions", ext_section)
fs.write_file(reqname..".cfg", fileval)
local cmd = path .. "openssl req -nodes -new -config "..format.escapespecialcharacters(reqname)..".cfg -keyout "..format.escapespecialcharacters(reqname)..".pem -out "..format.escapespecialcharacters(reqname)..'.csr -subj "'..subject..'" 2>&1'