Pipe openssl input to bash script read

0

Eu preciso passar a entrada do meu script bash para os comandos que eu executo dentro do script. Eu não tenho idéia de como fazê-lo. Eu procurei durante todo o dia por algo assim em bash .

#!/bin/env bash

# This script is used for generating ssl cert's for websites
# ==========================================================
# Version 1.0
# ==========================================================

# Working dir
# ===========
cd "$(dirname "$0")"

# Debugging
# =========
set -x

# Imput options
# =============
read -p "Domain name: " domain_name;
read -p "Enter password: " pass;


# Verify if there is imput "conditional expressions"
# man test; help [[
# ==================================================
if [[ $domain_name ]]; then
  openssl genrsa -aes256 -out root/ca/intermediate/private/${domain_name}.key.pem 2048
  chmod 400 root/ca/intermediate/private/${domain_name}.key.pem
  openssl req -config root/ca/intermediate/openssl.cnf -key root/ca/intermediate/private/${domain_name}.key.pem -new -sha256 -out root/ca/intermediate/csr/${domain_name}.csr.pem
  openssl ca -config root/ca/intermediate/openssl.cnf -extensions server_cert -days 475 -notext -md sha256 -in root/ca/intermediate/csr/${domain_name}.csr.pem -out root/ca/intermediate/certs/${domain_name}.cert.pem
  chmod 444 root/ca/intermediate/certs/${domain_name}.cert.pem
else
  echo "Insert a domain name."
fi
if openssl x509 -noout -text -in intermediate/certs/${domain_name}.cert.pem; then
  openssl verify -CAfile root/ca/intermediate/certs/ca-chain.cert.pem intermediate/certs/${domain_name}.cert.pem
fi

Praticamente, eu preciso que o script não falhe e automatize a criação de ssl certificados auto-assinados.

A entrada que preciso passar é: password , domain name .

    
por EmbargoLacuna 15.12.2015 / 16:57

1 resposta

1

Você pode fazer isso com algo assim:

#!/bin/bash
domain="domain.com"
pass="somethingCompleX"
your_script.sh <<EOF
$domain
$password
EOF

com 'your_script.sh', o script dado em sua pergunta.

Esta sintaxe permite passar algumas strings na entrada de um script. O primeiro <<EOF fornece a tag 'End Of File' que representa o final das strings que você deseja passar para o seu script. Todos os personagens depois serão passados para o seu script, então o

your_script.sh <<EOF
foo
bar
EOF

é igual a

$ your_script.sh
Domain name: foo
password: bar

você também pode consultar esta resposta no stackoverflow

    
por 15.12.2015 / 17:14