මැක්හි, පහත සඳහන් දේ කිරීමෙන් ඔබට පද්ධති මට්ටමින් ක්රෝම් සහ සෆාරි විසින් පූර්ණ විශ්වාසයක් ඇති සහතිකයක් නිර්මාණය කළ හැකිය:
# create a root authority cert
./create_root_cert_and_key.sh
# create a wildcard cert for mysite.com
./create_certificate_for_domain.sh mysite.com
# or create a cert for www.mysite.com, no wildcards
./create_certificate_for_domain.sh www.mysite.com www.mysite.com
ඔබේම මූල අධිකාරිය භාවිතා කර සම්පූර්ණයෙන්ම විශ්වාස කළ හැකි නව ස්වයං අත්සන් සහතිකයක් නිර්මාණය කිරීමට ඔබට අවශ්ය නම්, ඔබට මෙම ස්ක්රිප්ට් භාවිතයෙන් එය කළ හැකිය.
create_root_cert_and_key.sh
#!/usr/bin/env bash
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
create_certificate_for_domain.sh
#!/usr/bin/env bash
if [ -z "$1" ]
then
echo "Please supply a subdomain to create a certificate for";
echo "e.g. www.mysite.com"
exit;
fi
if [ ! -f rootCA.pem ]; then
echo 'Please run "create_root_cert_and_key.sh" first, and try again!'
exit;
fi
if [ ! -f v3.ext ]; then
echo 'Please download the "v3.ext" file and try again!'
exit;
fi
# Create a new private key if one doesnt exist, or use the xeisting one if it does
if [ -f device.key ]; then
KEY_OPT="-key"
else
KEY_OPT="-keyout"
fi
DOMAIN=$1
COMMON_NAME=${2:-*.$1}
SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
NUM_OF_DAYS=825
openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr
cat v3.ext | sed s/%%DOMAIN%%/"$COMMON_NAME"/g > /tmp/__v3.ext
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext
# move output files to final filenames
mv device.csr "$DOMAIN.csr"
cp device.crt "$DOMAIN.crt"
# remove temp file
rm -f device.crt;
echo
echo "###########################################################################"
echo Done!
echo "###########################################################################"
echo "To use these files on your server, simply copy both $DOMAIN.csr and"
echo "device.key to your webserver, and use like so (if Apache, for example)"
echo
echo " SSLCertificateFile /path_to_your_files/$DOMAIN.crt"
echo " SSLCertificateKeyFile /path_to_your_files/device.key"
v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = %%DOMAIN%%
තවත් එක් පියවරක් - ස්වයං අත්සන් කළ සහතික Chrome / Safari හි පූර්ණ විශ්වාසයක් ඇති කර ගන්නේ කෙසේද
ස්වයං අත්සන් කළ සහතික ක්රෝම් සහ සෆාරි කෙරෙහි පූර්ණ විශ්වාසයක් තැබීමට ඉඩ දීම සඳහා, ඔබ ඔබේ මැක් වෙත නව සහතික අධිකාරියක් ආනයනය කළ යුතුය. එසේ කිරීම සඳහා මෙම උපදෙස් අනුගමනය කරන්න, නැතහොත් mitmproxy වෙබ් අඩවියේ මෙම සාමාන්ය ක්රියාවලිය පිළිබඳ වඩාත් සවිස්තරාත්මක උපදෙස් :
විධාන රේඛාවේදී ඔබට මෙම ක්රම 2 න් එකක් කළ හැකිය, මෙම විධානය භාවිතා කර ඔබගේ මුරපදය ඉල්ලා සිටිනු ඇත:
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain rootCA.pem
හෝ Keychain Access
යෙදුම භාවිතා කිරීමෙන් :
- යතුරුපුවරු ප්රවේශය විවෘත කරන්න
- "යතුරුපුවරු" ලැයිස්තුවේ "පද්ධතිය" තෝරන්න
- "කාණ්ඩය" ලැයිස්තුවේ "සහතික" තෝරන්න
- "ගොනුව | අයිතම ආයාත කරන්න ..." තෝරන්න
- ඉහත නිර්මාණය කළ ගොනුව පිරික්සන්න, "rootCA.pem", එය තෝරන්න, සහ "විවෘත" ක්ලික් කරන්න
- "සහතික" ලැයිස්තුවේ අලුතින් ආනයනය කළ සහතිකය තෝරන්න.
- "I" බොත්තම ක්ලික් කරන්න, නැතහොත් ඔබේ සහතිකය මත දකුණු ක්ලික් කර "තොරතුරු ලබා ගන්න" තෝරන්න
- "විශ්වාසය" විකල්පය පුළුල් කරන්න
- "මෙම සහතිකය භාවිතා කරන විට" "සැමවිටම විශ්වාස කරන්න" ලෙස වෙනස් කරන්න
- සංවාදය වසන්න, එවිට ඔබගේ මුරපදය ඔබෙන් විමසනු ඇත.
- ඔබගේ ඉලක්කගත වසම භාවිතා කරන ඕනෑම ටැබ් එකක් වසා නැවත විවෘත කරන්න, එවිට එය ආරක්ෂිතව පටවනු ලැබේ!
ප්රසාද දීමනාවක් ලෙස, ඔබට සහතික විශ්වාස කිරීමට ජාවා සේවාදායකයින් අවශ්ය නම්, ඔබේ සහතික ජාවා යතුරු ගබඩාවට ආනයනය කිරීමෙන් ඔබට එය කළ හැකිය. මෙය දැනටමත් තිබේ නම් සහතිකය යතුරු ගබඩාවෙන් ඉවත් කරනු ඇති බව සලකන්න. ඇත්ත වශයෙන්ම මෙය සිදු කරන්නේ ආනයනය කරන සහතික සඳහා පමණි.
import_certs_in_current_folder_into_java_keystore.sh
KEYSTORE="$(/usr/libexec/java_home)/jre/lib/security/cacerts";
function running_as_root()
{
if [ "$EUID" -ne 0 ]
then echo "NO"
exit
fi
echo "YES"
}
function import_certs_to_java_keystore
{
for crt in *.crt; do
echo prepping $crt
keytool -delete -storepass changeit -alias alias__${crt} -keystore $KEYSTORE;
keytool -import -file $crt -storepass changeit -noprompt --alias alias__${crt} -keystore $KEYSTORE
echo
done
}
if [ "$(running_as_root)" == "YES" ]
then
import_certs_to_java_keystore
else
echo "This script needs to be run as root!"
fi