Git操作はコマンドラインではなかなか作業が見にくいのですが、Git ソースツリーでは、今誰が、どのファイルを、どのように編集しているかを視覚化して見えやすいようにすることができます。
細かい操作はコマンドの方が早い などのデメリットもあるようです。
随机应变 ABCD: Always Be Coding and … : хороший
Git操作はコマンドラインではなかなか作業が見にくいのですが、Git ソースツリーでは、今誰が、どのファイルを、どのように編集しているかを視覚化して見えやすいようにすることができます。
細かい操作はコマンドの方が早い などのデメリットもあるようです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>space</title> </head> <body> <div> 前後に半角スペース </div> <p> pタグ前後に半角スペース </p> <table> <tr> <td> 前後に半角スペース </td> </tr> <tr> <td> 前後に半角スペース </td> </tr> </table> </body> </html>
ん? 文頭の半角スペースは消えるが文末の半角スペースは残ってる?
なに? 期待値とちょっと違うな。。
割と簡単にできます。
(1)Google Formをつくる
(2)画面右上の「送信」ボタンをクリックします。
(3)ポップアップが表示されたら、メールアイコンの横のリンクアイコンをクリックします
(4)リンクURLが表示されます
プライベートIPv4は、インターネットから到達できないIP
プライベートIPv4は、同じネットワーク内のインスタンス間の通信に使用
パブリックIPアドレス インターネットから到達可能なIPv4アドレス
インスタンスとインターネット間で通信するにはパブリックアドレスを使用
Elastic IPアドレス(IPv4) : アカウントに割り当てることができるパブリックIPv4アドレス
IPv6アドレス:IPv6 CIDRブロックをVPCと関連付けることができる
プライベートIPは、要するに1つのインスタンスから別のインスタンスに接続する際に使用するIPアドレス
プライベートIPとパブリックIPはサーバを再起動すると変わるが、ElasticIPは固定できる。
/etc/pki/tls 配下にca.crt, ca.key, ca.csrを配置していく
[vagrant@localhost ssl]$ sudo cp ca.crt /etc/pki/tls/certs/
[vagrant@localhost ssl]$ sudo cp ca.key /etc/pki/tls/private/
[vagrant@localhost ssl]$ sudo cp ca.csr /etc/pki/tls/private/
restorecon (RERSTORE files default selinux security CONtext)
正しいセキュリティコンテキストを付与する
[vagrant@localhost ssl]$ restorecon -RvF /etc/pki/
restorecon reset /etc/pki/dovecot/certs/dovecot.pem context unconfined_u:object_r:dovecot_cert_t:s0->system_u:object_r:dovecot_cert_t:s0
restorecon set context /etc/pki/dovecot/certs/dovecot.pem->system_u:object_r:dovecot_cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/dovecot/private/dovecot.pem context unconfined_u:object_r:dovecot_cert_t:s0->system_u:object_r:dovecot_cert_t:s0
restorecon set context /etc/pki/dovecot/private/dovecot.pem->system_u:object_r:dovecot_cert_t:s0 failed:’Operation not permitted’
restorecon: unable to read directory /etc/pki/rsyslog
restorecon reset /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/extracted/java/cacerts context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/extracted/java/cacerts->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/ca-trust/source/ca-bundle.legacy.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/ca-trust/source/ca-bundle.legacy.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon: unable to read directory /etc/pki/CA/private
restorecon reset /etc/pki/tls/certs/ca.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/certs/ca.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/certs/localhost.crt context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/certs/localhost.crt->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/private/localhost.key context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/private/localhost.key->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/private/ca.key context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/private/ca.key->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
restorecon reset /etc/pki/tls/private/ca.csr context unconfined_u:object_r:cert_t:s0->system_u:object_r:cert_t:s0
restorecon set context /etc/pki/tls/private/ca.csr->system_u:object_r:cert_t:s0 failed:’Operation not permitted’
なんだこれは?
まつ、csrと秘密鍵がある状態です。
[vagrant@localhost ssl]$ ls
ca.csr ca.key
CRTファイルとは??
CRTファイルは、SSL証明書会社が、CSRファイルに情報を付加して秘密鍵で暗号化したもの。サーバー証明書などと言われる。
証明書会社の秘密鍵に対応する公開鍵は各ブラウザに内蔵されているため、CSRファイルの内容を安全に送信できる。
openssl x509: 秘密鍵で自己署名した証明書を作成する
[vagrant@localhost ssl]$ openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt Signature ok subject=/C=ja/ST=tokyo/L=shibuya/O=hpscript/OU=developement/CN=hpscript/emailAddress=info@hpscript.com Getting Private key
まじか!!!!!!!!!!!!!!!
CSRとは「Ceertificate Signing Request」の略でSSLサーバ証明書発行に必要なテキストデータ
公開鍵やコモンネーム(FQDN)、組織名、部署名等が含まれている。
認証局は、CSRと申し込み情報を元に内容を精査してSSLサーバ証明書を発行する
→つまり、認証局がSSL証明書発行に必要なファイルという意味ですね。
openssl req は証明要求(csr)の作成
-new 新規作成
-out 出力する要求ファイル名
-key filename 入力する秘密鍵のファイル名
作成したRSA秘密鍵からCSRをつくります
openssl req -new -key ca.key -out ca.csr
色々聞かれます。
Country Name
state or province name
locality name
organization name
organizational unit name
common name
email address
[vagrant@localhost ssl]$ openssl req -new -key ca.key -out ca.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:ja State or Province Name (full name) [Some-State]:tokyo Locality Name (eg, city) []:shibuya Organization Name (eg, company) [Internet Widgits Pty Ltd]:hpscript Organizational Unit Name (eg, section) []:developement Common Name (e.g. server FQDN or YOUR name) []:hpscript Email Address []:info@hpscript.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:hpscript An optional company name []:hpscript
RSA秘密鍵を元に、CSRが作られます。
[vagrant@localhost ssl]$ ls ca.csr ca.key
作成されたCSR
-----BEGIN CERTIFICATE REQUEST----- MIIDBjCCAe4CAQAwgY4xCzAJBgNVBAYTAmphMQ4wDAYDVQQIDAV0b2t5bzEQMA4G A1UEBwwHc2hpYnV5YTERMA8GA1UECgwIaHBzY3JpcHQxFTATBgNVBAsMDGRldmVs b3BlbWVudDERMA8GA1UEAwwIaHBzY3JpcHQxIDAeBgkqhkiG9w0BCQEWEWluZm9A aHBzY3JpcHQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmJ4B 3ZcX+fD+dDWaE+76QxYd8Z9ooLwGWneFfpZyOYBDP291rMMzVrSA/tAH0HfXFBKu P8rmtEB23YEzcy4OKOrTXIZqoKfGO6tTgDQYFSTvGJoNWSpf3CZqqVy6nTyeOOUf MiN6SdWgZV6ZNYx3OPpCacPCVpaYgmLAVL7MmQr+nTGsfFzB8G3acReKaEa1LFDU bMf1TYj+pK6cNy5KDU3jKLbfWHf6o+n7rFi4ZhLw6DCDHEJpy2CLxO/RdjpC7Vil hogehoge -----END CERTIFICATE REQUEST-----
ほう、csrもハッシュ化されるのか^^
openssl genrsa -out ca.key 2048で作成する
genrsaのオプションを確認しておこう。-out fileでファイルを作成する。2048は2048bitという意味。
usage: genrsa [args] [numbits]
-des encrypt the generated key with DES in cbc mode
-des3 encrypt the generated key with DES in ede cbc mode (168 bit key)
-idea encrypt the generated key with IDEA in cbc mode
-seed
encrypt PEM output with cbc seed
-aes128, -aes192, -aes256
encrypt PEM output with cbc aes
-camellia128, -camellia192, -camellia256
encrypt PEM output with cbc camellia
-out file output the key to ‘file
-passout arg output file pass phrase source
-f4 use F4 (0x10001) for the E value
-3 use 3 for the E value
-engine e use engine e, possibly a hardware device.
-rand file:file:…
load the file (or the files in the directory) into
the random number generator
openssl genrsa -out ca.key 2048と打ち込みます。
[vagrant@localhost ssl]$ openssl genrsa -out ca.key 2048 Generating RSA private key, 2048 bit long modulus ..............+++ .....+++ e is 65537 (0x10001)
ca.keyができるのがわかります。
[vagrant@localhost ssl]$ ls ca.key
ca.keyの中身を見てみます。
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAmJ4B3ZcX+fD+dDWaE+76QxYd8Z9ooLwGWneFfpZyOYBDP291 rMMzVrSA/tAH0HfXFBKuP8rmtEB23YEzcy4OKOrTXIZqoKfGO6tTgDQYFSTvGJoN WSpf3CZqqVy6nTyeOOUfMiN6SdWgZV6ZNYx3OPpCacPCVpaYgmLAVL7MmQr+nTGs fFzB8G3acReKaEa1LFDUbMf1TYj+pK6cNy5KDU3jKLbfWHf6o+n7rFi4ZhLw6DCD HEJpy2CLxO/RdjpC7Vil+eJl99AdIbGOOdRwAnJZ5TfNzINXKg91jWYByaIc0kqS Vj4snaHADrJkEiKF//B17qsbPXFwG2WbcA+A2wIDAQABAoIBAChWixOwneu4IOlC Sak/HvKgY+W7RoJFcEB1GtmsliBQoHWh1i6FoYonR3kSLx6Qrk5l6Zx+2p+F8mT1 g03MPH3gI2FvPbuc3K5kyDs4iaz9CB0uipyosJGVrdd55PEuVnufQ7GS4v2k8zIX 4NLgf5qVuvwNe847G7BKvZ8olxdUAh5HEbi8OigI3jHJk/uEXrp48aLF9uU/u6l9 AOwOo44bh0adt1Iu+7HAxS/huFXxwlLqxkCW3iYrAG6A9EgScGdljg7L812meRNJ Am6/1euX8Zq/rWPkiXds2yTiY5RmI/1TeaHhhLqOMqkGbpxYPCial6uFYfiCgF/Q uH2tfvECgYEAxzD7M/JMNDQC2Ak9jEMKABFlC60p4BhdFi0KRMZbBfNrBnR/f4zg +t5dtVzFJX0k5fPD5Dx5KV1LGsmbQNzvfBtvNcraXjICGWEUwaTVV16WkHJt30c8 FeN27pTFXS30qAgPDPn818nQvdesVjEghL1Z/B6jmodtKsGcUkDYPC8CgYEAxCSi hoehoge -----END RSA PRIVATE KEY-----
できてます。
認証機関ではない身元が不確かな機関が発行した証明書
オレオレ証明書というのだから、自分で発行した証明書ということだろう
mod_ssl
Apache Module mod_ssl
This module provides SSL v3 and TLS v1.x support for the Apache HTTP Server.
TLSの最新はv1.3だから対応してそう
[vagrant@localhost ~]$ httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Jun 19 2018 15:45:13
[vagrant@localhost ~]$ rpm -aq | grep mod_ssl
sudo yum isntall mod_ssl openssl
mod_sslとopensslをインストールする
[vagrant@localhost /]$ sudo yum install mod_ssl openssl [vagrant@localhost /]$ openssl version OpenSSL 1.0.2n 7 Dec 2017
入りました^^
list-standard-commands
[vagrant@localhost /]$ openssl list-standard-commands
asn1parse
ca
ciphers
cms
crl
crl2pkcs7
dgst
dh
dhparam
dsa
dsaparam
ec
ecparam
enc
engine
errstr
gendh
gendsa
genpkey
genrsa
nseq
ocsp
passwd
pkcs12
pkcs7
pkcs8
pkey
pkeyparam
pkeyutl
prime
rand
req
rsa
rsautl
s_client
s_server
s_time
sess_id
smime
speed
spkac
srp
ts
verify
version
x509
genrsaがありますね。
CAとはCertificate Authority(認証局)
open genrsa -out ca.key 2048
-> 2048bitのに認証局キーを生成する
JavaとサーバサイドのSSL/TLSの使用プロトコルの差異
TLSとはなにか?
SSLはSecurity Sockets Layerで安全に通信するためのセキュリティプロトコル。
TLSはSSLの次世代規格。SSLと呼んでいるものは、実際TLSを指している場合もある
TLSはTransport Layer Securityの略
TLSが提供するチャネルでは
– 通信データ暗号化することで盗聴しても内容が分からないようにする
– 通信データが伝送される途中で改ざんされた時にそれを検出する
– 通信相手が正しいとこいうことを確認できる
最新バージョンはTLS1.3