Mac OS X 10.9でopensslを使用して、Windows Serverリモートデスクトップサービス用の自己署名証明書を生成しています。
以下のコマンドを使用して、証明書を生成できます。
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt
ただし、拡張キー使用法文字列Server Authentication(1.3.6.1.5.5.7.3.1)を追加する必要があるため、上記のコマンドでその方法を理解できません。
これを含むファイルでopensslオプション-extfileを使用してみましたが、
[= default ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
しかし、「-extfileオプションが見つかりません」というエラーが表示されます
openssl x509
は-extfile
を使用しますが、使用しているコマンドopenssl req
は、構成ファイルを指定するために-config
を必要とします。
したがって、次のようなコマンドを使用できます。
openssl req -x509 -config cert_config -extensions 'my server exts' -nodes \
-days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt
識別名ビットの通常のプロンプトは、デフォルトの構成ファイル(おそらくOS Xでは/System/Library/OpenSSL/openssl.cnf
)で定義されていますが、-config
を使用するとこのファイルは処理されないため、構成ファイルもいくつかのDNビットを含みます。したがって、上記で参照したcert_config
は次のようになります。
[ req ]
Prompt = no
distinguished_name = my dn
[ my dn ]
# The bare minimum is probably a commonName
commonName = secure.example.com
countryName = XX
localityName = Fun Land
organizationName = MyCo LLC LTD INC (d.b.a. OurCo)
organizationalUnitName = SSL Dept.
stateOrProvinceName = YY
emailAddress = [email protected]
name = John Doe
surname = Doe
givenName = John
initials = JXD
dnQualifier = some
[ my server exts ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
# 1.3.6.1.5.5.7.3.1 can also be spelled serverAuth:
# extendedKeyUsage = serverAuth
# see x509v3_config for other extensions
コメントに示されているように、DNフィールドのほとんどを省略することができます。 HTTPSを使用する場合、必要なのはホスト名と一致するCNだけです。
識別名と属性セクションの形式セクションreq(1) の変更方法を示します複数の同様の証明書/リクエストを生成したい場合は、上記の設定で値を要求する(およびデフォルト値を提供する)。
他の証明書拡張が必要な場合は、拡張セクションで指定できる他のビットについて、 x509v3_config(5) を確認してください。