#!/bin/sh # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # This script generates a CA and leaf cert which can be used for the # quic_server. try() { "$@" || (e=$?; echo "$@" > /dev/stderr; exit $e) } try rm -rf out try mkdir out try /bin/sh -c "echo 01 > out/2048-sha256-root-serial" touch out/2048-sha256-root-index.txt # Generate the key. try openssl genrsa -out out/2048-sha256-root.key 2048 # Generate the root certificate. try openssl req \ -new \ -key out/2048-sha256-root.key \ -out out/2048-sha256-root.req \ -config ca.cnf try openssl x509 \ -req -days 3 \ -in out/2048-sha256-root.req \ -signkey out/2048-sha256-root.key \ -extfile ca.cnf \ -extensions ca_cert \ -text > out/2048-sha256-root.pem # Generate the leaf certificate request. try openssl req \ -new \ -keyout out/leaf_cert.key \ -out out/leaf_cert.req \ -config leaf.cnf # Convert the key to pkcs8. try openssl pkcs8 \ -topk8 \ -outform DER \ -inform PEM \ -in out/leaf_cert.key \ -out out/leaf_cert.pkcs8 \ -nocrypt # Generate the leaf certificate to be valid for three days. try openssl ca \ -batch \ -days 3 \ -extensions user_cert \ -in out/leaf_cert.req \ -out out/leaf_cert.pem \ -config ca.cnf