ルート証明書とサーバー証明書を生成し、ルートとして署名しました。信頼できない接続に関する警告を削除するためにルート証明書をインストールするにはどうすればよいですか?アップデート、dpkgの再構成動作しません。 Kali Linux v.1.1.0でOpenSSL、Iceweaselブラウザを使用しています。
編集する
ステップ:ルートCAのキーを生成します。
dd if=/dev/random of=.rnd count=64 bs=32
openssl genrsa -rand .rnd -out org.key 2048
証明書要求を生成します。
openssl req -new -key org.key -config org.cnf -out org.csr
そして:
org.cnf
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
extensions = v3_req
x509_extensions = usr_cert
[ req_distinguished_name ]
countryName = US
countryName_default = US
stateOrProvinceName = City
stateOrProvinceName_default = City
localityName = City
localityName_default = City
organizationName = Company
organizationName_default = Company
organizationalUnitName = CA
organizationalUnitName_default = CA
commonName = CAuthority
commonName_default = CAuthority
emailAddress = [email protected]
emailAddress_default = [email protected]
[ v3_req ]
basicConstraints = CA:TRUE
nsComment = "CA certificate of PTI"
nsCertType = sslCA
[ usr_cert ]
# These extensions are added when 'ca' signs a request.
basicConstraints=critical,CA:TRUE
ルートCAを作成します。
openssl x509 -req -signkey org.key -in org.csr -extfile org.cnf -out org.crt -days 1830
ルートの内容はこれがすべてです。これで、サーバー証明書を生成してApacheにインストールする必要があります。キー生成:
dd if=/dev/urandom of=.rnd count=64 bs=32;
openssl genrsa -rand .rnd -out httpd.key 2048;
証明書要求を生成します。
openssl req -new -key httpd.key -config httpd.cnf -out httpd.csr
そして:
httpd.cnf
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
extensions = v3_req
x509_extensions = usr_cert
[ req_distinguished_name ]
countryName = country [US]
countryName_default = US
stateOrProvinceName = province [City]
stateOrProvinceName_default = City
localityName = locality [City]
localityName_default = City
organizationName = organization [Company]
organizationName_default = Company
organizationalUnitName = OU_name
organizationalUnitName_default = Webserver
commonName = commonName
commonName_default = "localhost"
emailAddress = email
emailAddress_default = [email protected]
[ v3_req ]
basicConstraints = CA:false
nsComment = "Apache Server Certificate"
nsCertType = server
[ usr_cert ]
# These extensions are added when 'ca' signs a request.
basicConstraints=critical,CA:TRUE
結局私は署名した。httpd.csr次のコマンドを使用します。
openssl ca -notext -in httpd.csr -cert org.crt -keyfile org.key -out httpd.crt -md sha1 -days 90 -verbose;
それから私のインストールhttpd.crtそしてhttpd.keyApacheにアクセスしようとするとhttpsローカルホスト、「接続を信頼できません」と表示されます。次へ追加httpd.crtIceweasel当局には何の結果もなかった。それでも「信頼できない接続」です。
ベストアンサー1
CA:True
に設定する必要がありますroot.crt
。
ブラウザでは、CA 以外の証明書をAuthorities
リストに追加することができないため、エラー メッセージが表示されます。
次のコマンドを使用して、この拡張が証明書にあることを確認できます。
openssl x509 -noout -text -in root.crt
これにより、証明書のテキスト表現が印刷され、次の抜粋を検索できます。
X509v3 Basic Constraints: critical
CA:TRUE
存在しない場合は、openssl
構成ファイルを変更し、指定されたブロックに以下を追加する必要がありますx509_extensions
。
basicConstraints = critical, CA:TRUE
manx509v3_configopenssl.cnf
すべての詳細が提供されますが、以下はFedora 23システム上のファイルの例です。
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = /etc/pki/CA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = usr_cert # The extentions to add to the cert
これは、次の内容を含むx509_extensions
ファイル名の下部セクションを指すことがわかります。usr_cert
[ usr_cert ]
# These extensions are added when 'ca' signs a request.
basicConstraints=CA:TRUE
名前はuser_cert
単なる名前なので、証明書がCA証明書であるという事実は重要ではありません。 OCDがある場合は、usr_cert
両方を変更できますCA_cert
。
上記を使用している構成ファイルに追加する必要があります。つまり、コマンド-config
にオプションを追加しないと、ディストリビューションのデフォルトプロファイルが使用されます。openssl
これは通常OpenSSLのデフォルトディレクトリにあり、次のように見つけることができます。
openssl version -d