99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

self-signed certificate.代做、代寫Java/c++設計編程

時間:2024-02-25  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



Step #2: Create a self-signed certificate. HTTPS connections require TLS, and, in order to use TLS, your
server will need a certificate. For testing, you may want to create a self-signed certificate. You can do this
using the keytool utility, with is included in the JDK. An example command would be (on a single line):
keytool -genkeypair -keyalg RSA -alias selfsigned -keystore keystore.jks
-storepass secret -dname "CN=Blah, OU=Blubb, O=Foo, L=Bar, C=US"
This will create a file called keystore.jks in the local directory.
Step #3: Open a TLS socket. As a first step, implement the securePort method, and then add code to
replace the existing server socket with a TLS server socket. You can use code roughly like the following:
import javax.net.ssl.*;
import java.security.*;
String pwd = "secret";
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(new FileInputStream("keystore.jks"), pwd.toCharArray());
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
keyManagerFactory.init(keyStore, pwd.toCharArray());
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(), null, null);
ServerSocketFactory factory = sslContext.getServerSocketFactory();
ServerSocket serverSocketTLS = factory.createServerSocket(securePortNo);
You should now be able to use serverSocketTLS instead of your existing server socket. (This will
disable normal HTTP requests for now, but we’ll fix this shortly.) Try running a simple test application on
your server, like
securePort(8443);
get("/", (req,res) -> { return "Hello World!"; });
and then open https://localhost:8443/ in your web browser. (Be sure to include the https
part!) If you are using the self-signed certificate from Step #2, which is not signed by any CA, you will see
lots of warnings in the browser, but it should be possible to override them. For instance, in Safari you would
see a warning that says that “This Connection Is Not Private”, but you can click on “Details”, then on “visit
this website”, and then confirm by clicking on the “Visit Website” button. At the end, you should see the
“Hello World!” message from the test application, and you should be able to view the information in your
self-signed certificate by clicking on the little lock icon in Safari’s address bar (or whatever equivalent your
favorite browser has to this). If the lock icon is missing or you do not get any warnings, something is
wrong; chances are that you are still using HTTP. Also, at this point, the https test case should pass.
Step #4: Add back HTTP support. In order to support both HTTP and HTTPS, which use different ports,
your server will need to listen to two different server sockets. A simple way to do that is to use two
separate threads. If you haven’t already, you should factor out your server loop into a separate method, say
serverLoop(s), where s is a ServerSocket; at that point, you can simply open both a normal
server socket and a TLS server socket, and then launch two separate threads that each invoke this method
with one of the two server sockets. At this point, both the http and https test cases should pass.
Step #5: Add a session object. Next, create a class – perhaps called SessionImpl – that implements
the Session interface. This class doesn’t have to do much; all it needs to do is store the various bits of
information (the session ID, creation time and last-accessed time, max active interval, and key-value pairs)
and implement the various getter and setter methods in the interface.
Step #6: Add session handling. Now you can use this class to add support for sessions. There are four
places in the server that need changes. First, you need a data structure that stores the sessions by session ID
– probably some kind of Map. Second, you’ll need to parse the Cookie header(s) while reading the
3
request, and extract the cookie with the name SessionID, if it exists; if it does, and your Map contains a
session for that ID, update that session’s last-accessed time and make sure that the session() method
will return it when called. Third, when session() is called and there is not already a session, you’ll
need to create a new object with a fresh session ID. Keep in mind that the session ID should be random and
have at least 120 bits; for instance, you can pick a set of 64 characters (maybe lower and upper case letters,
digits, and two other characters) and then draw 20 of them. Finally, when writing out the headers, you’ll
need to add a Set-Cookie header whenever you’ve created a new SessionImpl object, to send back
the corresponding SessionID cookie to the user. With this, you should be able to implement the two
attribute methods from the Session interface, and both the sessionid and permanent test
cases should pass.
Step #7: Add session expiration. The final step is to add a way to expire session objects. This requires
two steps. First, you’ll need a way to periodically expire old sessions that have not been accessed recently;
you can do this by launching another thread that sleeps for a few seconds, removes any session objects
whose last-accessed timestamp is too old, and then repeats. Notice, however, that this could cause the
server to slightly overshoot the lifetime of a session. To fix that, the second step is to also check the
last-accessed timestamp before updating it, and to simply ignore the object if it has already expired but has
not been deleted yet. At this point, both the expire test case should pass.
Step #8: Implement a test server. Write a little server that 1) calls securePort(443) to set the
HTTPS port, and 2) defines a GET route for / that returns the required message from Section 2. Test this
server locally (https://localhost/) with your self-signed certificate, to make sure that it displays
the message correctly. If you cannot bind to port 443 on your local machine, you can use port 8443 for
testing (in this case, open https://localhost:8443/ instead), but please don’t forget to use 443 in
the final version that will be deployed on EC2.
Step #9: Launch an EC2 instance. Log into the Amazon Web Services console and choose EC2 (by
clicking on “Services”, then on “Compute”, and then on “EC2”). Click on “Launch Instance”, and then do
the following:
• Under “Application and OS Images”, choose the default Amazon Linux AMI (Amazon Linux 2023).
• Under “Instance type”, choose one of the smallest/cheapest instances – say, a t2.micro instance.
This should be enough for our purposes.
• Under “Key Pair”, click on “Create new key pair”, choose a descriptive name (perhaps “CIS5550”),
and pick RSA and the .pem format. Hit “Create Key Pair”, which should cause your browser to
download a .pem file.
• Under “Network settings”, make sure that the following three options are checked: “Allow SSH
traffic from Anywhere”, “Allow HTTPS traffic from the internet”, and “Allow HTTP traffic from the
internet”. Please double-check this – if you get this step wrong, chances are that you won’t be able to
connect to your server later on.
• Under “Configure storage”, you can keep the default, which is probably an 8GB gp3 root volume.
In the summary bar on the right, double-check that the number of instances is 1, and then hit the orange
“Launch instance” button. Wait a moment, until (hopefully) AWS reports success. Go back to the
“Instances” tab in EC2, and find the instance you just launched. When you click on its instance ID, you
should see an “Instance summary” that shows, among lots of other things, its public IPv4 address. Write
this down. (Do not confuse this with the private IPv4 address, which probably starts with 172. or 10.
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp 

掃一掃在手機打開當前頁
  • 上一篇:CMSC 323代做、代寫Java, Python編程
  • 下一篇:代做Project 1: 3D printer materials estimation
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
    合肥機場巴士2號線
    合肥機場巴士2號線
    合肥機場巴士1號線
    合肥機場巴士1號線
  • 短信驗證碼 豆包 幣安下載 AI生圖 目錄網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          午夜亚洲性色视频| 国产午夜精品久久久久久久| 国产精品99久久久久久有的能看| 国产精品久久久久久五月尺| 久热re这里精品视频在线6| 亚洲一区二区三区免费在线观看| 精品成人乱色一区二区| 欧美体内谢she精2性欧美| 久久久国产精品一区二区中文| 99热免费精品在线观看| 精品51国产黑色丝袜高跟鞋| 欧美性一二三区| 欧美女人交a| 久久综合给合| 欧美专区在线| 欧美亚洲在线播放| 亚洲一区日韩| 一区二区三区精密机械公司| 亚洲精品一区二区在线观看| 亚洲国产精品va在线观看黑人| 国产一区二区三区直播精品电影| 国产精品私拍pans大尺度在线 | 亚洲自拍偷拍麻豆| 亚洲免费久久| 一本久道久久久| 日韩一级片网址| 久久免费午夜影院| 国产亚洲精品资源在线26u| 欧美极品色图| 欧美另类视频在线| 欧美久久影院| 欧美日韩视频免费播放| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久久欧美精品| 午夜视频在线观看一区二区三区 | 亚洲大黄网站| 亚洲经典一区| 999亚洲国产精| 亚洲手机视频| 欧美一区二区三区免费观看| 午夜在线观看免费一区| 性欧美1819性猛交| 久久福利视频导航| 麻豆成人精品| 欧美日韩国产专区| 国产精品影音先锋| 激情久久影院| 亚洲美女毛片| 亚洲在线免费视频| 久久国产精品毛片| 牛牛国产精品| 欧美午夜视频网站| 国产亚洲福利一区| 亚洲人成精品久久久久| 中文欧美日韩| 久久久久一区| 欧美网站在线观看| 狠狠色综合网| 洋洋av久久久久久久一区| 午夜国产精品视频免费体验区| 久久久久久一区二区| 欧美日韩高清不卡| 国产亚洲综合精品| 99re6热只有精品免费观看| 欧美在线日韩| 欧美视频福利| 91久久久久| 久久精品视频免费播放| 欧美喷潮久久久xxxxx| 国产亚洲美州欧州综合国| 亚洲精品视频免费在线观看| 性色av一区二区三区在线观看 | 亚洲国产经典视频| 亚洲免费综合| 欧美日本一区| 狠狠综合久久av一区二区小说| av成人动漫| 嫩草影视亚洲| 精品96久久久久久中文字幕无| 日韩视频在线一区二区| 久久精品盗摄| 国产精品视频导航| 99亚洲精品| 欧美精品18| 亚洲国产精品精华液网站| 久久激情视频久久| 国产美女在线精品免费观看| 这里是久久伊人| 欧美啪啪成人vr| 日韩视频一区二区三区在线播放| 久久综合狠狠综合久久综合88| 国产酒店精品激情| 午夜精品久久久久久99热软件| 欧美日韩精品免费观看视一区二区| 黄色精品一区二区| 久久久xxx| 激情久久一区| 欧美成人午夜| 日韩午夜在线| 欧美三级视频| 亚洲一区欧美| 国产一区二区精品久久91| 欧美一区二区三区视频免费播放 | 亚洲一区二区三区精品在线| 欧美日韩在线亚洲一区蜜芽| 99精品国产在热久久| 欧美午夜精品久久久久免费视| 99精品视频一区二区三区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 在线精品一区| 欧美精品国产一区二区| 中文在线不卡| 国产精品自拍在线| 久久精品30| 最新日韩在线视频| 欧美视频在线观看免费网址| 亚洲女性喷水在线观看一区| 国产日韩精品入口| 久久最新视频| 亚洲一区二区影院| 黄色国产精品| 欧美日韩伦理在线| 羞羞漫画18久久大片| 在线观看欧美激情| 欧美日韩一区成人| 欧美一区二区三区视频免费| 悠悠资源网亚洲青| 欧美视频手机在线| 久久久亚洲一区| 亚洲香蕉网站| 在线日韩欧美| 国产精品网站在线播放| 免费成人黄色| 性一交一乱一区二区洋洋av| 欲色影视综合吧| 国产精品videossex久久发布| 久久国产手机看片| 一区二区欧美国产| 国精品一区二区| 欧美亚州韩日在线看免费版国语版| 久久精品30| 亚洲一区二区三| 亚洲欧洲精品天堂一级| 国产欧美1区2区3区| 欧美另类99xxxxx| 另类成人小视频在线| 午夜久久久久久| 99热免费精品| 亚洲国产合集| 红桃视频亚洲| 国产噜噜噜噜噜久久久久久久久| 欧美韩国日本综合| 美女视频网站黄色亚洲| 欧美一区二区在线| 午夜伦欧美伦电影理论片| 妖精视频成人观看www| 91久久精品日日躁夜夜躁国产| 国产日韩在线一区| 国产精品青草久久| 欧美日韩理论| 欧美日本韩国一区| 欧美精品亚洲| 欧美日本不卡| 欧美片在线播放| 欧美久久电影| 欧美日韩一区二区三区在线观看免 | 欧美xx视频| 欧美va亚洲va日韩∨a综合色| 久久黄色影院| 欧美一区在线看| 久久国产精品久久国产精品| 久久超碰97中文字幕| 久久精品人人做人人综合| 欧美中在线观看| 久久精品国产2020观看福利| 欧美综合77777色婷婷| 欧美一区二区视频在线| 久久狠狠亚洲综合| 麻豆成人在线观看| 欧美激情视频在线播放| 欧美电影电视剧在线观看| 欧美精品一区二区久久婷婷| 欧美激情麻豆| 欧美午夜片欧美片在线观看| 国产精品国内视频| 国产在线精品自拍| 最新日韩av| 亚洲一区三区视频在线观看| 午夜精品区一区二区三| 开元免费观看欧美电视剧网站| 女仆av观看一区| 欧美涩涩视频| 今天的高清视频免费播放成人| 在线观看视频一区| 一区二区三区毛片| 久久国产主播精品| 欧美巨乳在线| 国产麻豆精品在线观看| 亚洲激情第一页| 亚洲欧美欧美一区二区三区|