GNU/Linux >> Linux の 問題 >  >> Linux

OpenSSLを使用してx509SHA256ハッシュ自己署名証明書を生成する方法

OpenCAを使用する私のプロジェクトの1つでは、sha1からsha2に移行する必要がありました。まず、基盤となるOpenSSLがsha2をサポートしていることを確認する必要がありますか?ここで私は私の発見と解決策のいくつかを共有します。 openssl(バージョン0.9.7h以降)はsha256をサポートしていますが、デフォルトでは、署名にsha1アルゴリズムを使用しています。このチュートリアルでは、sha256ダイジェストアルゴリズムを使用してデジタルx509証明書を生成する方法を説明します。 「bybyによって、sha1はすでに壊れていると言いました!」 記事sha1が壊れていることを確認してください。

以下の画像は、SHA機能の比較を示しています:

先に進む前に、Secure Socket Layer(SSL)およびTransport Layer Security(TLS)プロトコルの実装に使用されるオープンソースツールキットであるOpenSSLがインストールされていることを確認してください。ツールキットには、さまざまなオプションを使用して実行できる多数の機能がロードされています。 20の最も便利なOpenSSLコマンドについて学ぶ これは、x509sha256ハッシュ自己署名証明書の生成をさらに理解するのに役立ちます。

前提条件: このチュートリアルで説明されているコマンドを実行するには、OpenSSLをインストールする必要があります。お持ちでない場合は、ここをクリックしてインストールしてください。

ステップ1:sha256のopensslサポートを見つける方法

以下のコマンドを実行して、opensslバージョンがsha256ダイジェストをサポートしているかどうかを確認します:

#openssl dgst --help

サンプル出力:

Fri Feb 07>$openssl dgst --help
unknown option '--help'
options are
-c to output the digest with separating colons
-d to output debug info
-hex output as hex dump
-binary output in binary form
-sign file sign digest using private key in file
-verify file verify a signature using public key in file
-prverify file verify a signature using private key in file
-keyform arg key file format (PEM or ENGINE)
-signature file signature to verify
-binary output in binary form
-engine e use engine e, possibly a hardware device.
-md5 to use the md5 message digest algorithm (default)
-md4 to use the md4 message digest algorithm
-md2 to use the md2 message digest algorithm
-sha1 to use the sha1 message digest algorithm
-sha to use the sha message digest algorithm
-sha224 to use the sha224 message digest algorithm
-sha256 to use the sha256 message digest algorithm
-sha384 to use the sha384 message digest algorithm
-sha512 to use the sha512 message digest algorithm
-ripemd160 to use the ripemd160 message digest algorithm

ステップ2:OpenSSLを使用してx509SHA256ハッシュ自己署名証明書を生成する方法

>

sha256はsha2の一部であり、sha224、sha256、sha384、sha512などの他のハッシュ関数で構成されています。sha256とsha512が人気があります。以下のOpenSSLコマンドを実行して、sha256ハッシュ関数を使用して自己署名証明書を生成します。この証明書は、ドメイントランザクションを保護するためのSSL証明書として使用できます。

#openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout techglimpse.com.key -out techglimpse.com.crt

続きを読む:sha256ハッシュアルゴリズムを使用してパスワードを暗号化する方法

ステップ3:自己署名x509デジタル証明書のsha256ハッシュ関数を確認する

これで証明書が生成されました。証明書が実際に暗号化にsha256ハッシュ関数で使用されているかどうかを確認する必要があります。確認できるOpenSSLコマンドは次のとおりです。

#openssl x509 -noout -text -in techglimpse.com.crt

このコマンドは、有効性、署名アルゴリズム、公開鍵の長さなど、デジタル証明書に関するすべての情報を一覧表示します。OpenSSLコマンドを使用してSHA1またはSHA2ハッシュ関数を使用しているWebサイトのSSL証明書を確認することもできます

サンプル出力:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            f4:49:d3:ec:cc:9a:4e:01
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=IN, ST=KA, L=BANGALORE, O=CDAC, CN=Test.com
        Validity
            Not Before: Feb  7 07:09:30 2014 GMT
            Not After : Feb  7 07:09:30 2015 GMT
        Subject: C=IN, ST=KA, L=BANGALORE, O=CDAC, CN=Test.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:c1:bc:2c:71:25:73:89:9f:4a:c6:a2:03:b5:3d:
                    02:8d:bb:99:12:67:f0:51:fd:a1:b7:a2:26:a0:73:
                    19:de:f8:b1:06:f2:d6:55:44:bb:a3:8d:ef:8e:b3:
                    fa:18:a3:10:07:54:0a:be:a4:29:0d:62:fc:dc:e6:
                    bb:3c:e8:6d:6d:2e:fa:0a:b3:7c:8a:ec:f8:c5:57:
                    a6:51:02:3a:9b:9e:8a:66:0e:69:e5:ae:bc:c9:15:
                    05:e4:f0:14:b0:46:71:8a:b6:72:3c:9d:23:a0:e4:
                    1b:94:13:69:5a:5c:ab:dc:22:4a:54:93:01:2b:20:
                    b7:b4:b2:a7:5f:76:5e:b8:85:41:19:a6:47:ff:cb:
                    35:45:59:b3:fe:7d:b8:ff:ac:4b:32:0f:68:ca:88:
                    c4:8d:63:01:b3:01:94:32:79:e7:2f:e9:6e:21:d3:
                    f2:28:ef:c3:2f:f7:e0:47:51:d1:61:0e:78:52:60:
                    d5:bc:1d:98:98:54:0b:51:dd:28:f4:7a:a5:a0:cd:
                    b3:1c:da:80:95:65:e7:32:91:df:61:de:cd:5c:d2:
                    74:e5:de:e1:24:3d:e7:29:23:d2:28:00:85:ce:d6:
                    11:1a:25:68:c7:f1:8f:dd:82:dc:01:43:a5:0b:c4:
                    e7:90:f8:8e:f0:ab:37:ed:32:44:7c:89:4b:c0:a7:
                    dc:7f
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                EF:12:34:E0:D9:A8:82:C5:C0:E5:28:71:4A:EC:6B:CD:43:60:95:70
            X509v3 Authority Key Identifier:
                keyid:EF:12:34:E0:D9:A8:82:C5:C0:E5:28:71:4A:EC:6B:CD:43:60:95:70
                DirName:/C=IN/ST=KA/L=BANGALORE/O=CDAC/CN=Test.com
                serial:F4:49:D3:EC:CC:9A:4E:01

X509v3の基本的な制約:
CA:TRUE
署名アルゴリズム:sha256WithRSAEncryption
b2:d4:22:79:73:56:22:6e:3e:8c:4f:0d:44:ad:d9:a8:46:2b:
9c:4b:c1: ee:b3:ec:a5:58:95:15:49:9e:2a:88:6a:5f:79:31:
af:28:0d:21:da:50:d8:42: 77:07:8c:b7:4c:ef:e6:7d:49:7f:
17:69:66:27:a3:ef:cb:a6:72:ef:eb:7c:95: 29:3f:03:3c:f9:
74:2a:9e:66:88:2a:91:39:63:0b:9c:39:21:b1:83:3f:44:d3:
4b:c3:d7:d0:d9:bc:b0:8f:79:e1:66:29:03:52:5c:0c:af:a9:
0f:3b:4f: 4d:ad:44:aa:be:6d:99:9b:9f:53:b5:89:e6:14:5b:
92:b1:ef:9b:39:9b:ba:e5: d3:f8:4a:c4:a7:74:43:59:7e:1a:
6a:2b:74:ef:10:85:0f:ec:65:2c:57:b8:5c: bc:36:a5:78:84:
2c:11:b1:e4:b5:3c:1d:b9:06:17:7e:d3:09:1c:58:af:de:1d:
3f:b4:1c:a8:1b:d5:53:34:e8:fd:bc:28:39:b7:05:5b:85:9b:
8e:e7:13: ac:52:83:20:93:25:b3:68:57:34:09:c0:89:2c:05:
25:e3:3c:11:6e:09:f9:90: d4:84:e0:ea:77:fc:fe:af:79:38:
f0:65:97:d2:77:fb:00:76:88:8e:df:e1:cc: 30:33:dd:01:77:
e4:c2:c8:cc

以下のビデオをチェックしてください:

また読む:知っておくべきOpenSSLコマンド。

楽しみ!問題が発生した場合は、お気軽にコメントを投稿してください。できる限り回答させていただきます。


Linux
  1. Linuxで証明書署名要求(CSR)を生成する方法

  2. パスワードのハッシュに使用されるハッシュアルゴリズムを見つける方法は?

  3. 独自のハードウェアハッシュを生成する方法は?

  1. cPanelに自己署名SSL証明書をインストールする方法

  2. OpenSSLを使用して証明書署名要求(CSR)を生成する方法は?

  3. 証明書署名要求を生成します

  1. OpenSSLを使用してSSL証明書がSHA1またはSHA2であるかどうかを確認するにはどうすればよいですか?

  2. すべての証明書チェーンのHpkpフィンガープリントを生成しますか?

  3. Ubuntu18.04で自己署名SSL証明書を作成する方法