証明書が信頼されない2

http://monqy.blogspot.com/2017/12/blog-post_23.html
の続き

証明書内の cnを信頼せず、別のところを見ているらしい。
簡単に偽装できるからだろう。

以下をやってサーバ証明書への署名をすれば対応できると聞いて
やってみたが............

/etc/pki/tls/openssl.confを修正
[ req ]
req_extensions = v3_req

[ usr_cert ]
authorityKeyIdentifier=keyid,issuer:always

[ v3_req ]
subjectAltName = @alt_names

[alt_names]
DNS.1 = example.com
DNS.2 = *.example.com


今度は

NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM

sha1になってる。


いろいろやったが、結局以下で。
vi ./openssl.cnf
#以下のセクションのパラメータを設定
[ CA_default ]
default_md = sha256

[ req ]
default_bits = 2048
default_md = sha256

[ usr_cert ]
basicConstraints=CA:TRUE
nsCertType = server

[ v3_ca ]
nsCertType = sslCA, emailCA

これをやって、CAを作り直す。

CAを作りなおす場合、
/etc/pki/CA/private/cakey.pem
があると
-newca
をやっても動かないので消す。

あと、いったんできたファイルは全部消しておく。

そんで、サーバの秘密鍵作成、CSR作成、署名をやりなおす。
apacheを再起動、CA証明書は、cacert.pemの最後の

-----BEGIN CERTIFICATE-----
から
-----END CERTIFICATE-----

までをテキストにコピーして拡張子 .crtにすればインポートできる。

chromeもいったん終了して再起動。


晴れてchromeに「保護された通信」と認めてもらえた。







証明書が信頼されない

(追記 証明書の有効期限は長すぎると信頼されなくなるようになっており10年とかにすると信頼されない)

自分のSSLサイトに証明書をつける。 金を出して買うのではない。 自己署名証明書でもない。 CAのお墨付きの証明書だ。 ただし、そのCAは自分で建てる。 結果的には自己署名証明書のようなものだが。 サーバはさくらのVPS、centos 6.9
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Oct 19 2017 16:43:38
# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
下記三つのファイルに有効期限の設定があるが、
/etc/pki/tls/openssl.cnf
#365を3650に

/etc/pki/tls/misc/CA
#365を3650に

/etc/pki/tls/misc/CA
#1095を3650に

1. CAを作る

/etc/pki/tls/misc/CA -newca
CA certificate filename (or enter to create)

#enterを入力

writing new private key to '/etc/pki/CA/private/./cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

#cakeyのパスワードを2回入力
#以下は適当に
#Common NameはURLとして入力するホスト名にする。

Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Tokyo
Organization Name (eg, company) [Default Company Ltd]:example.com
Organizational Unit Name (eg, section) []:example
Common Name (eg, your name or your server's hostname) []:example.com
Email Address []:mail@example.com
以下は何も入力せずにenterでよい
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
CA証明書は下記にできる
/etc/pki/CA/cacert.pem
CA秘密鍵は
/etc/pki/CA/private/cakey.pam

2. サーバ証明書をつくる 

2-1. サーバ証明書の秘密鍵をつくる
# mkdir /etc/pki/ssl
# cd /etc/pki/ssl
# openssl genrsa -out server.key -aes256 2048
2-2. CSR(Certificate Signing Request)の作成
openssl req -new -key server.key -out server.csr

3. サーバ証明書に署名する

openssl ca -config /etc/pki/tls/openssl.cnf -in server.csr -keyfile /etc/pki/CA/private/cakey.pem -cert /etc/pki/CA/cacert.pem -out server.crt
パスワード、yを2回いれる。 下記のエラーになったときは、
failed to update database
TXT_DB error number 2
/etc/pki/CA/newcerts/に xxxxx.pem というファイルがあるはずなので、
openssl ca -revoke /etc/pki/CA/newcerts/xxxxx.pem
をやってから、署名をもう一度やる。
openssl rsa -in server.key -out server.key

4. apacheの設定

vi /etc/httpd/conf.d/ssl.conf
証明書と秘密鍵が /etc/pki/ssl にあるとして
SSLCertificateFile /etc/pki/ssl/server.crt
SSLCertificateKeyFile  /etc/pki/ssl/server.key
に変更して
service httpd restart
サイトにアクセスすると証明書が信頼できないというエラーが表示される。

証明書を表示すると「この証明書の発行者を検出できませんでした。」 となっている。

5. CA証明書をクライアントにインストール 

Windows10の場合 /etc/pki/CA/cacert.pem をクライアントにコピーし、拡張子を.crtに変える。
ダブルクリックすると証明書として表示されるので、「証明書のインストール」をクリックする。 ウィザードが走るのでインストールする。
私は「ローカルコンピューター」「信頼されたルート証明機関」にいれた。

さあこれでエラーが表示されなくなった.... と思ったら、ダメだ。
IEはエラーが表示されなくなったが、 chromeとfirefoxは依然として証明書を信頼してくれない。

chromeは
NET::ERR_CERT_COMMON_NAME_INVALID

Firefoxは
SEC_ERROR_UNKNOWN_ISSUER

....。

調べたら、対応策があるようなので、次回。

続き↓ https://monqy.blogspot.com/2017/12/blog-post_87.html

資格は必要か

LPIC101を受けたのだが来年の5月で失効する。
もったいないので201を受けようと思う。
そして秋にはネットワークスペシャリストを受ける。
そして来年は久しぶりにTOEICを受けたい。


資格は重要でないという人は多いが、私は重視している。
私には学歴がなく有名企業の社員でもない。
仕事をするのに資格が条件となることはほとんどないが、
印象がよくなるのは間違いない。


数学ができなくても生きていける。
英語がわからなくても生きていける。

でも、生きる世界は数学や英語を理解している人より狭くなるのは当然だ。

資格も同様。
私が持っている資格はたいしたものではないが、
それでも合格するには時間とカネがかかるし、何よりも決意がいる。

3年や5年などあっという間に経ってしまう。

その間に仕事に忙殺され、プライベートでは低俗な楽しみで流されていくのは
悲しいことだ。

それは自分のことである。

有名企業に勤めるとか出世するとかカネを稼ぐとか、
それはそれでひとつのカタチであり、それを目指すのもいいかもしれないが、
私は彼らが楽に生きられるパスを奪い合っているようにしか見えない。
彼らが他より優秀だとも努力しているとも思わない。
単に必死で強欲なだけ。

満員電車に恥も外聞もなく乗りこめるようなずうずうしさ。
私は社会人になったばかりの頃はなかなか満員電車に乗れず、何本も電車を見送っていた。

やがて慣れてくると前の客を押し込むようにして乗れるようになっていったが、
それをたくましくなったとか生きるためには仕方がないなどとは思わない。

ただ、恥知らずに無神経になっていっただけだ。


私は、成功したいのではない。常に自分を成長させていきたい。
そこそこの仕事でいいから、役に立つ人間でありたい。

何にもしてないのにカネばかりもらいやがって、と言われるような人間にだけは、
なりたくない。